質問: re.sub('\r', '', text) # 整形結果確認 # 頭の100文字の表示 print(text[:100]) # 見やすくするため、空行 print() print() # 後ろの100文字の表示 print(text[-100:]) ``` 一 うとうととして目がさめると女はいつのまにか、隣のじいさんと話を始めている。このじいさんはたしかに前の前の駅から乗ったいなか者である。発車まぎわに頓狂な声を出して駆け込んで来て、いきなり肌をぬい 評に取りかかる。与次郎だけが三四郎のそばへ来た。 「どうだ森の女は」 「森の女という題が悪い」 「じゃ、なんとすればよいんだ」 三四郎はなんとも答えなかった。ただ口の中で迷羊、迷羊と繰り返した。 ### やってみたこと 変更後は、元のコードから入手したテキストファイル("sanshiro.txt")の読み込みから始めました。 元と変更後の両者とも、頭と後ろの100文字のみ出力するようにしています。 頭と後ろの100文字は2行空けて表示しています。 元コードは余分な部分を取り除いた上で結果を表示させています。 ### 補足事項 windows10 python3.7.4 参考:https://qiita.com/makaishi2/items/63b7986f6da93dc55edd
回答: 元のソースだと読み込んだtext変数を上書きしながら処理していますが、 変更後ソースだとcontents変数には上書きせずtxtf変数に書き出しています。 ただこれだとそれぞれの処理の変更が残らないし、そもそも書き出したtxtf変数を出力に使っていません。 ただそれだけのことでは? contents変数を上書き処理して試した分には元ソースと同じ結果になっていると思います。 ``` txtf = open("sanshiro.txt") contents = txtf.read() print(type(contents)) # => print(contents) # ファイル整形 import re # ヘッダ部分の除去 contents = re.split('\-{5,}',contents)[2] # フッタ部分の除去 contents = re.split('底本:',contents)[0] # | の除去 contents = contents.replace('|', '') # ルビの削除 contents = re.sub('《.+?》', '', contents) # 入力注の削除 contents = re.sub('[#.+?]', '',contents) # 空行の削除 contents = re.sub('\n\n', '\n',contents) contents = re.sub('\r', '',contents) # 整形結果確認 # 頭の100文字の表示 print(contents[:100]) # 見やすくするため、空行 print() print() # 後ろの100文字の表示 print(contents[-100:]) ```