gpt4 book ai didi

python - 每隔一行读取一次并打印到新文件

转载 作者:太空狗 更新时间:2023-10-29 22:11:28 26 4
gpt4 key购买 nike

我正在尝试读取 CSV 文件中的每一行并将其打印到一个新文件中。不幸的是,我收到了一个无法删除的空行。

lines = open( 'old.csv', "r" ).readlines()[::2]
file = open('new.csv', "w")
n = 0
for line in lines:
n += 1
if ((n % 2) == 1):
print >> file, line

我使用的代码只是通过查看 n 的模数值来确定它是否实际上是每隔一行。我什至尝试过 strip()rstrip() 仍然占用空行。

最佳答案

在回答您的问题时,您的空白行来自:

print >> file, line

像这样使用 print 会自动输出一个新行,使用 sys.stdout.write 或使用尾随逗号来抑制换行符,例如:

print >> file, line,

无论如何,解决这个问题的更好方法是使用 itertools.islice 来:

from itertools import islice

with open('input') as fin, open('output', 'w') as fout:
fout.writelines(islice(fin, None, None, 2))

如果有必要,先过滤掉空白行,然后从中取出每 2 行...

non_blanks = (line for line in fin if line.strip())
fout.writelines(islice(non_blanks, None, None, 2))

比使用模数等更方便和灵活。

关于python - 每隔一行读取一次并打印到新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17497866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com