これは、テキスト ファイル内の特殊文字を置き換えて 1 つのファイルに連結するために使用しているコードです。
# -*- coding: utf-8 -*-
import os
import codecs
dirpath = "C:\\Users\\user\\path\\to\\textfiles"
filenames = os.listdir(dirpath)
with codecs.open(r'C:\Users\user\path\to\output.txt', 'w', encoding='utf8') as outfile:
for fname in filenames:
currentfile = dirpath+"\\"+fname
with codecs.open(currentfile, encoding='utf8') as infile:
#print currentfile
outfile.write(fname)
outfile.write('\n')
outfile.write('\n')
for line in infile:
line = line.replace(u"´ı", "i")
line = line.replace(u"ï¬", "fi")
line = line.replace(u"fl", "fl")
outfile.write (line)
最初line.replace
のものは正常に機能しますが、他のものは機能しませんが (これは理にかなっています)、エラーが生成されなかったため、「可視性」の問題がある可能性があります (それが用語である場合)。そして、私はこれを作成しました:
import codecs
currentfile = 'textfile.txt'
with codecs.open('C:\\Users\\user\\path\\to\\output2.txt', 'w', encoding='utf-8') as outfile:
with open(currentfile) as infile:
for line in infile:
if "ï¬" not in line: print "not found!"
これは常に「見つかりません!」を返します。それらの文字が読み取られていないことを証明します。
with codecs.open('C:\Users\user\path\to\output.txt', 'w', encoding='utf-8') as outfile:
最初のスクリプトでに変更すると、次のエラーが発生します。
Traceback (most recent call last):
File C:\\path\\to\\concat.py, line 30, in <module>
outfile.write(line)
File C:\\Python27\\codecs.py, line 691, in write
return self.writer.write(data)
File C:\\Python27\\codecs.py, line 351, in write
data, consumed = self.encode(object, self.errors)
Unicode DecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal
not in range (128)
私はPythonの経験があまりないので、すでに利用可能なさまざまなソースによって、それを理解することはできません:Pythonのドキュメント(1、2)およびStackOverflowの関連する質問(1、2)
私はここで立ち往生しています。助言がありますか??すべての答えは大歓迎です!