您好我无法让我的Python正常工作。我有一个以下格式的文本文件:
3|1|15382|25364||
3|2|15384|25364||
43|1|27444|27297|4849569|
43|2|27486|27297|4329265|
107|2|24940|684269||
115|1|24869|684269||
我目前的Python代码:
f1 = open('myFile.txt', 'r')
f2 = open('myFileOutput.txt', 'w')
for line in f1:
f2.write(line.replace('|\n', ','))
f1.close()
f2.close()
我当前的代码将创建一个如下所示的myFileOutput.txt:
3 | 1 | 15382 | 25364 |,3 | 2 | 15384 | 25364 |,43 | 1 | 27444 | 27297 | 4849569,43 | 2 | 27486 | 27297 | 4329265,107 | 2 | 24940 | 684269 |, 115 | 1 | 24869 | 684269 ||
我想要的是两个||之间没有数据它应该保持第二个|。我目前的代码不这样做。这是我希望它看起来像的一个例子:
3 | 1 | 15382 | 25364 ||,3 | 2 | 15384 | 25364 ||,43 | 1 | 27444 | 27297 | 4849569,43 | 2 | 27486 | 27297 | 4329265,107 | 2 | 24940 | 684269 ||,115 | 1 | 24869 | 684269 ||
我使用的是Python 2.7.3,这些文件的大小也可达500MB。
答案 0 :(得分:1)
使用f2.write(line.replace('|\n', ',').replace('|,', '||,'))
答案 1 :(得分:-1)
一种简单的方法是首先用“||| \ n”替换“|| \ n”,所以新代码将是
f1 = open('myFile.txt', 'r')
f2 = open('myFileOutput.txt', 'w')
for line in f1:
line = line.replace('||\n', '|||\n')
f2.write(line.replace('|\n', ','))
f1.close()
f2.close()