【发布时间】:2017-03-23 16:09:50
【问题描述】:
您好,我遇到了这个小问题,我正在从一个文件中读取一些内容,提取一些列并将其写入另一个文件。现在,由于 write() 方法不会在每一行文本之后添加换行符,我通过下面的代码做到了这一点,但这带来了一个问题,它也会在文件末尾添加一个额外的空白行,这不是故意的。
fh.write(string+'\n')
所以我想知道我们如何解决这个问题,下面是我的代码
with open("C:\\test.txt") as fh, open("C:\\newtest","w") as f:
for line in fh:
if not re.search("^$",line):
f.write(line.split()[-1].split(",")[0]+'\n')
所以有什么建议。
【问题讨论】:
-
跟踪当前行号和总行号,然后将它们相互比较。如果当前行 == 总行数不添加 \n t
-
@kyle 但这又是更多代码,我猜还要在代码中进行另一次检查
-
如果数据集足够小,那么你可以
f.write('\n'.join(line.split()[-1].split(",")[0] for line in fh if not re.search("^$",line))而不是for循环。 -
@AChampion 这似乎不起作用,因为它用换行符连接每个字符串,因此输出是这样的。
d n = " u i d = e e c d l b a c c pd n = " u i d = e e c d l b a c c pd -
正常写第一行,后面的行以换行符开头
标签: python