在Python中为所有输出行添加“\ n”的简单方法?

时间:2012-06-26 17:34:07

标签: python

以下脚本适合我,但我想知道是否可以更简单的方式完成。 我使用的是Python 2.7.3。

f = open('file.txt')
out = open('script.sql', "w")
for line in f:
        out.write('%s%s' % (line[:-1], '\n'))
f.close()
out.close()

谢谢,

7 个答案:

答案 0 :(得分:6)

嗯,有line[:-1] + '\n'

答案 1 :(得分:3)

不要使用旧的%s字符串格式使用format()

   out.write('{0}{1}'.format(line[:-1], '\n'))

out.write('{0}\n'.format(line[:-1]))

答案 2 :(得分:3)

您可以使用\n添加line[:-1] + '\n',也可以使用更简单的格式,例如'%s\n' % (line[:-1],)

答案 3 :(得分:2)

在这种情况下,剥离换行并再次添加它似乎有点多余:

f = open('file.txt')
out = open('script.sql', "w")
for line in f:
     out.write(line)
f.close()
out.close()

或者更好的是,使用shutil直接复制文件。

答案 4 :(得分:2)

如果您使用print,则会自动添加\n

print >>out, line[:-1]

这些天建议使用with,如下所示:

with open('file.txt') as f, open('script.sql', "w") as out:
    for line in f:
       print >>out, line[:-1]

# autoclosed f and out...

答案 5 :(得分:0)

我会使用out.write(line.rstrip('\r\n') + '\n'),为每一行添加换行符而不会重复。

答案 6 :(得分:0)

在将line out的内容写入文件之前,请使用如下的line.rstrip:

out.write(line.rstrip('\r\n') + '\n')

将删除任何现有的回车符或换行符'\ r'或'\ n`,并为每一行添加换行符。