見出し画像

Pythonで一番右の文字を削除する方法

ちょっと状況がわからない。と思うかも知れませんが、多分検索ワードで検索して来た方にはきっと役立つかもしれないです。

CSVで使った以前のテキストを使用

さて、以前Pythonにてテキストの抽出をしてみるというのをやりました。

Pythonでテキストの抽出をしてみる-CSVファイルの作成まで
Pythonでテキストの抽出をしてみる日付編-CSVファイルの作成まで
Pythonでテキストの抽出をしてみる提出編-CSVファイルの作成まで
Pythonでテキストの抽出をしてみる提出番号編-CSVファイルの作成まで
Pythonでテキストの抽出をしてみる整形編-CSVファイルの作成まで
Pythonでテキストの抽出をしてみる-CSVファイルの作成

この時使ったテキストを再度使います。

以前は名前のところは提出人のコードの箇所で参考人もだして取得しました。そんな都合の良いことがこの先あるとは限らないので他の方法を考えて見ました。

今回抽出するのは参考人

今回は参考人のとこを抽出したいです。参考人は以下のようになっています。

参考人   青しそ 大葉 様 

名前なので、時には全角スペースだったり半角スペース。中には漢字だけとかひらがななど想定できます。外人の方だったらアルファベットやカタカナの可能性もあります。そこで何か方法ないか考えて見ました。

「様」まで取得する

名前は変わっても、「参考人」と「様」の箇所は固定になると思います。ファイルによって「様」が有るときと無いときってのは考えづらいです。書面なら大体あると考えて見ます。

そこで、様までを取得するようにします。コードを以下のようにします。

  results = re.findall(r"参考人+[\s\S]+様", str_areas)
 with open("sample_python_txt.txt",'a',newline='') as f:
     for result in results:
         #result = result.split()
         print(result)

実行すると、

参考人   青しそ 大葉 様

と取得できます余計なスペースを取り除きます

  results = re.findall(r"参考人+[\s\S]+様", str_areas)
 with open("sample_python_txt.txt",'a',newline='') as f:
     for result in results:
         result = result.replace(" ","")
         print(result)

replaceを使って置換してます。この違いはまた今度書きます。実行すると

参考人青しそ大葉様

となります。参考人との間に「:」を入れたいのと、「様」をとりたいです。カンマの入れ方はPythonでテキストの抽出をしてみる整形編-CSVファイルの作成まで を閲覧してください。ここでは「様」を取り除きます

「様」を削除する

右から1文字を削除します。Pythonでは「スライス」という機能があります。一番左を0として、1文字ずつインデックスが振られています。右からのカウントは「-1」とするとできます。コードを以下のようにします

  results = re.findall(r"参考人+[\s\S]+様", str_areas)
 with open("sample_python_txt.txt",'a',newline='') as f:
     for result in results:
         result = result.replace(" ","")
         print(result[:4] + ":"+result[4:-1])

「:」をいれているため、連結しております。result[4:-1]が、様を取ったじょうたいになります。

4番目から開始

参考人は、0-3のインデックスとなり、ここは名前をとりたいです。しかし、0からスタートすると参考人もとってしまいます。

そこで、4番目の名前からスタートします。終わりの指定を抽出では「様」としています。つまり、名前が長くても理論上全て取得できることになります。

お役に立ちましたか?

投げ銭をいただけるともっと頑張れます!
・note
・仮想通貨(bitflyer)
キャッシュ
のどれでも構いません
ビットコインアドレスは以下になります
3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS

この記事が気に入ったらサポートをしてみませんか?