1
タブ区切りのテキストファイルを作成し、 。Pythonはファイルに改行を書きます。改行ではなく、洀洀洀䄀爀猀猀猀琀givesとなります。
fin = open("in.txt", 'r')
fout = open("out.txt", 'w')
for line in fin:
mrList = line.split('\t')
fout.write(mrList[0] + "\t" + mrList[1])
fout.write('\n')
fin.close()
fout.close()
これはに行く:
Hello world<tab>how are you?<tab>Groovy
Like pie?<tab>I love it<tab>omnomnom
Go pikachu!<tab>Use pound!<tab>She like
これが出てくる:
Hello world<tab>how are you?䰀椀欀攀 瀀椀攀㼀ऀ䤀 氀漀瘀攀 椀琀ഀ
Go pikachu!<tab>Use pound!
私は '\ nは' 非常に改行ではないと思われる、そしてそれはその間違い」と主張グーグル\ n 0_0 "
更新日:
以来10以下の答え、発見されたこと、Linuxのコマンドラインで(ありがとう!):
file peskyInputFile.txt
はあなたのエンコーディングを指示し、
iconv -c -f utf-16 -t utf-8 peskyInputFile.txt -o outputFile.txt
がUTF-8にUTF-16ファイルを変換することあなたがUTF16を扱う必要がない場合には面倒を回避します。
可能重複[Pythonは3000行のテキストファイルは、1行の長さであると考えて?](http://stackoverflow.com/questions/2184543/python -thinks-a-3000-line-text-file-is-one-line-long) –
初心者のOPの視点からは "可能な重複"ではありません。提案された複製は受け入れられた答えがなく、一番正しい答えは最後の近くに埋もれていて、問題はLinux上のUTF-16BEテキストファイルでCR(古典的なMac)行ターミネータを読むことでした。現在の問題は、ASCIIであるかのように、LFターミネータを使用してUTF-16テキストファイルを処理しようとしています。 –
@JohnMachinフェアポイント。私は単純に解決策が同じであると主張しています。つまり、特定の症状に関係なく、文字を処理する前のバイトからデコードします。 –