回答:
file.write(f"{var1}\n")
これは、次の2つの方法で実行できます。
f.write("text to write\n")
または、Pythonのバージョン(2または3)に応じて:
print >>f, "text to write" # Python 2.x
print("text to write", file=f) # Python 3.x
以下を使用できます。
file.write(your_string + '\n')
file.write(f"my number is: {number}\n")
うまく読みやすいです。
それを広範囲に使用する場合(多数の書き込まれた行)、「ファイル」をサブクラス化できます。
class cfile(file):
#subclass file to have a more convienient use of writeline
def __init__(self, name, mode = 'r'):
self = file.__init__(self, name, mode)
def wl(self, string):
self.writelines(string + '\n')
今、それはあなたが望むことをする追加の関数wlを提供します:
fid = cfile('filename.txt', 'w')
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
fid.close()
たぶん、異なる改行文字(\ n、\ r、...)のようなものが足りない、または最後の行も改行で終了しているのですが、それは私にとってはうまくいきます。
return None
まず、あなたは、二すべてのPythonの関数が返すそれを必要としないため、この場合にはNone
何も存在しない場合に、デフォルトではreturn
声明。
あなたができる:
file.write(your_string + '\n')
別の回答で示唆されているように、file.write
2回呼び出すことができるときに文字列連結(遅い、エラーが発生しやすい)を使用する理由:
file.write(your_string)
file.write("\n")
書き込みはバッファリングされるため、同じ結果になることに注意してください。
file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
file.write("This will be added to the next line\n")
または
log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")
ただのメモfile
です。ではサポートされておらず、Python 3
削除されました。open
組み込み関数でも同じことができます。
f = open('test.txt', 'w')
f.write('test\n')
バイナリファイルに書き込む場合を除き、printを使用します。以下の例は、csvファイルのフォーマットに適しています。
def write_row(file_, *columns):
print(*columns, sep='\t', end='\n', file=file_)
使用法:
PHI = 45
with open('file.csv', 'a+') as f:
write_row(f, 'header', 'phi:', PHI, 'serie no. 2')
write_row(f) # newline
write_row(f, data[0], data[1])
ノート:
'{}, {}'.format(1, 'the_second')
- https://pyformat.info/、 PEP-3101*columns
関数定義内-リストに任意の数の引数をディスパッチします- * args&** kwargsの質問を参照してくださいこれは、区切り文字として\ nを体系的に生成するために、この問題を自分で解決しようと思いついた解決策です。各文字列がファイルの1行である文字列のリストを使用して書き込みますが、同様に機能するようです。(Python 3. +)
#Takes a list of strings and prints it to a file.
def writeFile(file, strList):
line = 0
lines = []
while line < len(strList):
lines.append(cheekyNew(line) + strList[line])
line += 1
file = open(file, "w")
file.writelines(lines)
file.close()
#Returns "\n" if the int entered isn't zero, otherwise "".
def cheekyNew(line):
if line != 0:
return "\n"
return ""
with open(path, "w") as file: for line in strList: file.write(line + "\n")
か?このようにして、すべてのリスト作業とチェックを削除し、3行だけにすることができます。