インポートされたテキストファイルの各行から最初の45文字を削除し、その結果を新しいテキストファイルに書き込もうとしています。なんらかの理由で、リスト/行の最初の項目だけが乱され、最初の42文字だけが削除されます。リストのループアクションが最初の項目だけ正しく実行されない
私はこの問題を何度も経験したことがありますが、それが起こっていた理由を理解したことはありませんでした。ありがとう!ここで
は私のコードです:
list1 = []
list2 = []
with codecs.open('FILE.txt', "r", encoding="utf-8") as inputfile:
list1 = [line.strip() for line in inputfile]
list1 = [x.encode('utf-8') for x in list1]
for item in list1:
list2.append(item[45:])
z = open('NEWFILE.txt', 'w');
z.write("\n".join(list2))
z.close()
実際にその行に3つの余分な目に見えない文字があるように聞こえます。 – user2357112
なぜあなたはエンコードした後にスライスしますか?このようにすると、45バイトではなく45バイトが切り詰められます。 – user2357112
BOMヘッダの問題ではありませんか? BOMヘッダーはエンコーディングの一部であり、最初の行の長さは3バイト... –