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

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...
于 2012-06-26T17:51:37.610 に答える
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 に答える
0

を使用out.write(line.rstrip('\r\n') + '\n')して、重複することなくすべての行に改行を追加します。

于 2012-06-26T17:51:27.657 に答える
0

line out の内容をファイルに書き込む前に、次のように line.rstrip を使用します。

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

既存のキャリッジ リターンまたはライン フィード '\r' または '\n` を削除し、すべての行に改行を追加します。

于 2012-06-26T21:14:55.463 に答える