以下脚本适合我,但我想知道是否可以更简单的方式完成。 我使用的是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()
谢谢,
答案 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`,并为每一行添加换行符。