0

我有一段代码从文本文件中删除一些不需要的行并将结果写入新的:

f = open('messyParamsList.txt')
g = open('cleanerParamsList.txt','w')
for line in f:
    if not line.startswith('W'):
        g.write('%s\n' % line)

原始文件是单行距的,但新文件在每行文本之间有一个空行。我怎样才能丢失空行?

4

5 回答 5

4

您没有从输入行中删除换行符,因此您不应该\n在输出中添加一个 ( )。

于 2012-04-25T21:44:12.153 回答
1

要么从您阅读的行中删除换行符,要么在写出时不添加新行。

于 2012-04-25T21:44:53.980 回答
1

做就是了:

f = open('messyParamsList.txt')
g = open('cleanerParamsList.txt','w')
for line in f:
    if not line.startswith('W'):
        g.write(line)

您从原始文件中读取的每一行末尾都有\n(新行)字符,所以不要添加另一个(现在您正在添加一个,这意味着您实际上引入了空行)。

于 2012-04-25T22:32:40.383 回答
0

我的猜测是变量“line”已经有一个换行符,但是你正在用 g.write('%s* \n *' % line)编写一个额外的换行符

于 2012-04-25T21:45:00.763 回答
0

行末尾有一个换行符。

从您的 write 或 rstrip 行中删除 \n。

于 2012-04-25T21:46:03.970 回答