0

以下脚本对我有用,但我想知道是否可以以更简单的方式完成。我正在使用 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()

谢谢,

4

7 回答 7

6

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

于 2012-06-26T17:35:21.317 回答
3

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

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

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

于 2012-06-26T17:36:09.140 回答
3

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

于 2012-06-26T17:37:27.900 回答
2

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

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

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

于 2012-06-26T17:40:27.063 回答
2

如果您使用打印,\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...
于 2012-06-26T17:51:37.610 回答
0

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

于 2012-06-26T17:51:27.657 回答
0

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

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

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

于 2012-06-26T21:14:55.463 回答