0

ファイルがあり、一部の行の\nが間違った場所にあります。正しく見つけることができますが、結果を新しいファイルに出力しようとすると、結果を印刷しても正常に出力されますが、\nは表示されます。これまでの私のコードは次のとおりです。

f = open("DUP1.txt","r")
w = open("output.txt", "w")
mark = 0

for line in f:
  if mark == 1:
    mark = 0
    w.write(outputline.replace("\n","\t") + line)
  else:
    subp = line.find(".")
    if subp < 8:
      mark = 1
      outputline = line.replace("\n","")
    else:
      w.write(line)

私が開いているファイルは次のようになります。

ABC0005    other   info    here
ABC0005.23
other      info    here
ABC0005.46
other      info    here

そして私はそれを次のように見せようとしています:

ABC0005    other   info    here
ABC0005.23 other   info    here
ABC0005.46 other   info    here
4

3 に答える 3

2
with open('testdata.txt') as fin, open('testdata.out', 'w') as fout:
    for line in fin:
        if 0 <= line.find('.') <= 8:
            fout.write(line.rstrip() + '\t' + next(fin))
        else:
            fout.write(line)
于 2013-02-19T19:56:46.813 に答える
1

この行:

subp = line.find(".")

にない-1場合に戻ります。これはあなたの論理を台無しにします。"."subp

于 2013-02-19T19:55:33.577 に答える
0

何が悪いのかわからなくても、ここにかなりのワンライナーがあります。

infile = open("test")
outfile = open("out", "w")    
outfile.writelines(s if not i%2 else s.replace("\n", "\t") for i, s in enumerate(infile))

編集:ジョンクレメンツの答えはより良いです。

于 2013-02-19T19:55:04.963 に答える