1

您好,我无法让我的 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。

4

2 回答 2

1

利用f2.write(line.replace('|\n', ',').replace('|,', '||,'))

于 2012-07-23T23:15:25.590 回答
-1

One easy way to do this would be to first replace "||\n" with "|||\n", so the new code would be

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()
于 2012-07-23T23:00:11.077 回答