0

これが私のコードです:

import fileinput


input_file = 'in.txt'
output = open('out.txt', 'w+')


for each_line in fileinput.input(input_file):
    output.write(x.strip() for x in each_line.split(','))

エラーとして「expect character buffer」が表示されます。これについてどうするのが最善の方法かわかりませんか?すべてのタブとスペースを削除してコンマに置き換えようとしています。

編集:たとえば、私のデータは次のようになります:

1   2335    mike

1   4089    doug

そして私はそれをに変えたい

1,2335,mike noll

1,4089,doug funny

編集、最初の 2 列の最初の 2 つのスペースのみを削除したい

4

2 に答える 2

1

x.strip() for x in each_line.split(',')ジェネレーター オブジェクトを返します ( が期待する文字列バッファーではありませんoutput.write) 。

できるよ:

with open('out.txt', 'w+') as output:
    for each_line in fileinput.input(input_file):
        output.write("\n".join(x.strip() for x in each_line.split(',')))
于 2013-06-28T20:16:58.683 に答える
0

str.joinリストを文字列に結合し、それをファイルに書き込むために使用します。

あなたのコードでは、実際に genexp を に渡していますfile.write

for each_line in fileinput.input(input_file):
    output.write(" ".join(x.strip() for x in each_line.split(',')) +'\n')

アップデート:

with open('out.txt', 'w') as f:
    for line in fileinput.input('input.txt'):
        line = line.split(None,2)
        f.write(','.join(line))
于 2013-06-28T20:17:27.693 に答える