ホームページ >バックエンド開発 >Python チュートリアル >Pythonを使って漢字を含むファイルを読み書きし、末尾に特定の文字を追加する方法の紹介

Pythonを使って漢字を含むファイルを読み書きし、末尾に特定の文字を追加する方法の紹介

高洛峰
高洛峰オリジナル
2017-03-20 13:07:401641ブラウズ

データ マイニングでは、元のファイルの形式が混乱することがよくあります。非常に重要な手順は、データ ファイルの形式を整理することです。

最近、私が引き継いだプロジェクトでは、提供されたデータ ファイルの形式が耐えられず、パンダを使用して開くことができず、入出力エラーが表示され続けました。注意深く調べたところ、ファイル内の多くの行のデータが終了していることがわかりました。 " が含まれていますが、他の行は欠落しています。 したがって、その必要性は明らかです。各行の末尾に "" があるかどうかを確認し、ない場合は単に追加します。

結局のところ、多くの人が必要としているのは、理由ではなく、簡単な解決策です。 解決策は次のとおりです:

b = open('b_file.txt', w)
with open('a_file.txt', 'r') as lines:
    for line in lines:
        line = line.strip()
        if not line.endswith(r'"'):
            line += r'"'
        line += '\n'
        b.write(line)

b.close()
a.close()

プロセス全体の鍵は

line = line.strip()

以前は怠け者でした。上記の行が見つかりましたが、結果は判定条件が失敗しました。プログラムは各行が「:

if not line.endswith(r'"')

弾丸を噛んで試してみてください。

for line in open(data_path+'heheda.txt', 'r'):
    if not line[-2] == r'"':
        print line
        line = line[:-1] + r'"' + line[-1:]
        print line
」で終わっていないと判断しました。

「この時の判定条件は、line[-2] == r'」でない場合、最終行以外は正しい結果が得られます。ご存知のとおり、Windows システムでは、ファイルの復帰文字は「rn」です。したがって、復帰文字を処理するためのstrip()がない場合は、ファイルの末尾で1バイト前に手動で移動する必要があります。各行の終わりを判断します。ファイルの最終行については、通常、改行文字で終わることはありません。結局のところ、改行する必要はありません。したがって、[-2] 行は最後の漢字の中央に配置され、xxxx は xx"xx としてハードライトされるため、最後の文字が正しく表示されません。

以上がPythonを使って漢字を含むファイルを読み書きし、末尾に特定の文字を追加する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。