python - Python、複数行の記述

原文 python

この質問が少しの初心者に出くわしても申し訳ありませんが、iv'eはしばらく探していて、これについて何も見つけることができません。

リクエストごとに新しい行で複数行をtxtファイルに書き込む方法をテストしています。改行を書くことができないようです。これは私が現在持っているものです。

import __builtin__

title=('1.0')
des=('1.1')
img=('1.2')
tag=('1.3')
tag2=('1.4')
tag3=('1.5')

tf = 'textfile.txt'
f2 = open(tf, 'a+')
f2.writelines([title,des,img,tag,tag2,tag3])
f2.close()

title=('2.0')
des=('2.1')
img=('2.2')
tag=('2.3')
tag2=('2.4')
tag3=('2.5')

tf = 'textfile.txt'
f2 = open(tf, 'a+')
f2.writelines([title,des,img,tag,tag2,tag3])
f2.close()

title=('3.0')
des=('3.1')
img=('3.2')
tag=('3.3')
tag2=('3.4')
tag3=('3.5')

tf = 'textfile.txt'
f2 = open(tf, 'a+')
f2.writelines([title,des,img,tag,tag2,tag3])
f2.close()


どうもありがとう、
答え
with open('xyz.txt', 'w') as fp:
    fp.writelines([ each_line + '\n' for each_line in ['line_1','line_2','line_3']])


writelines()は、書き込み中に改行'\n'を追加しません。

writelines(...)
writelines(sequence_of_strings) -> None.  Write the strings to the file.


改行は追加されないことに注意してください。シーケンスは任意の反復可能なオブジェクトにすることができます
文字列を生成します。これは、各文字列に対してwrite()を呼び出すのと同じです。

line_1
line_2
line_3


だからあなたはこのようなことをしなければならないかもしれません:

ケース1:

tf = 'textfile.txt'
f2 = open(tf, 'a+')
f2.writelines([str(data) + '\n' for data in [title,des,img,tag,tag2,tag3]])
f2.close()


ケース2:

tf = 'textfile.txt'
f2 = open(tf, 'a+')
f2.write(', '.join([str(data) for data in [title,des,img,tag,tag2,tag3]]) + '\n')
f2.close()
関連記事

python - 関数に渡されたパラメーター値を文字列として取得する方法

python - p4pythonを使用してSSL対応のPERFORCEサーバーに接続できません

python - Tkinterで文字を画像にマッピングする

python - ロギングライブラリの使用方法(Pythonでのロギングの実装)

python - python pandas-引数をローリングする場合のsumf

python - RabbitMQは接続をセットアップするのにこれだけ長い時間をかけるべきですか?

python - 列の1つに長い系列を含むパンダのデータフレームを処理するにはどうすればよいですか?

python - CygwinバッチからPythonスクリプトを自動実行する

python - ラムダ関数を含むpython3フィルターオブジェクト

python - numpy配列をハッシュする最も効率的なプロパティ