4

テキスト ファイルに 2 列の文字を出力する単純なコードがここにあります。

infile = open('anything.txt', 'r')
outfile = open('some.txt', 'w')
f = infile.readlines()
data=[]
a=['1','2','3']
b=['5','6','7']
for i in a:
  for j in b:
    outfile.write(i + "\t" + j + "\n")

結果のテキスト ファイルを標準のメモ帳で開くと、これらの奇妙な文字が表示されます。続きを読む</p>

しかし、Notepad++ または Wordpad でテキスト ファイルを開くと、予想どおり、結果は 2 つの数値列の間にタブが表示されます。

私はここで本当に迷っています。何が起こっている ?標準のメモ帳でテキスト ファイルを開くことはできませんか?

ご協力いただきありがとうございます。

4

3 に答える 3

3
于 2012-06-13T15:59:11.623 に答える
2

私はこの問題を抱えていません、あなたはどのバージョンのPythonを使っていますか、どのOSですか?

完了したら、ファイルを明示的に閉じる必要があります。

infile.close()
infile.close()

with完了したとき、または例外が発生したときに「自動的に」ファイルを閉じるので、使用を検討することをお勧めします。

with open('data.txt') as infile, open('some.txt', 'w') as outfile:

以前のバージョンのPython(2.7より前?)では、これを2つに分割する必要がある場合があります。

with open('data.txt') as infile:  # default mode is "read" if not specified
  with open('some.txt', 'w') as outfile:

(Python v2.4を使用してwithも機能しないとのことですが、v2.5で導入されましたが、それでも知っておくとよいでしょう)

私はこの出力を取得します:

1   5
1   6
1   7
2   5
2   6
2   7
3   5
3   6
3   7

また、プログラムでこれらの3行をまったく使用していないことに注意してください。

infile = open('anything.txt', 'r')
f = infile.readlines()
data=[]
于 2012-06-13T13:47:02.123 に答える
0

エディターが異なれば、異なる文字エンコーディングを想定している場合もあります。これにより、一部のエディターが結果を正しく表示する理由が説明されます。

于 2012-06-13T13:52:05.717 に答える