目录
Write a string to a file on a new line every time in Python
- 每次在 Python 中将字符串写入新行的文件
- 将换行符直接添加到字符串中
- 使用 for 循环在新行上将字符串列表写入文件
- 每次使用 join() 将字符串写入新行的文件
- 使用旧的 open() 语法的问题
在 Python 中每次都在一个新行上将一个字符串写入文件
每次在新行上将字符串写入文件:
- 以写入模式打开文件。
\n
在每个字符串的末尾附加一个换行符 ( )。- 使用该
file.write()
方法将行写入文件。
# ✅ Newer syntax (better) with open('example.txt', 'w', encoding='utf-8') as my_file: my_file.write('first line' + '\n') my_file.write('second line' + '\n') my_file.write('third line' + '\n') # ----------------------------------------------------- # ✅ Older syntax (not recommended) file = open('example.txt', 'w', encoding='utf-8') file.write('first line' + '\n') file.write('second line' + '\n') file.write('third line' + '\n') file.close()
如果您运行代码示例,您将创建一个example.txt
包含以下内容的文件。
first line second line third line
我们使用with 语句以读取模式打开文件。
该语句会自动为我们关闭文件。
file.write()
方法接受一个字符串并将字符串的内容写入文件。我们使用加法 (+) 运算符\n
在每行的末尾
添加一个换行符 ( )。
将换行符直接添加到字符串中
如果要将字符串文字写入文件,请将\n
字符直接添加到每个字符串的末尾。
with open('example.txt', 'w', encoding='utf-8') as my_file: my_file.write('bobby\n') my_file.write('hadz\n') my_file.write('com\n')
使用格式化的字符串文字代替
相反,如果您需要在字符串中插入变量,请使用格式化字符串文字。
with open('example.txt', 'w', encoding='utf-8') as my_file: var1 = 'bobby' var2 = 'hadz' var3 = 'com' my_file.write(f'First line: {var1}\n') my_file.write(f'Second line: {var2}\n') my_file.write(f'Third line: {var3}\n')
输出如下所示。
First line: bobby Second line: hadz Third line: com
格式化字符串文字
(f-strings) 让我们通过在字符串前加上f
.
var1 = 'bobby' var2 = 'hadz' result = f'{var1}{var2}' print(result) # 👉️ bobbyhadz
确保将表达式括在大括号 – 中{expression}
。
使用 for 循环在新行上将字符串列表写入文件
如果您需要每次都在新行上将字符串列表写入文件,请使用for 循环。
with open('example.txt', 'w', encoding='utf-8') as my_file: a_list = ['bobby', 'hadz', 'com'] for item in a_list: my_file.write(f'{item}\n')
我们使用for
循环遍历列表,在每个项目的末尾添加一个换行符并将结果写入文件。
定义一个可重用的函数
如果您必须经常这样做,请定义一个可重用的函数。
def write_on_separate_lines(file_name, lines): with open(file_name, 'w', encoding='utf-8') as file: for line in lines: file.write(f'{line}\n') write_on_separate_lines( 'example.txt', ['bobby', 'hadz', 'com'] )
该函数将文件名和行列表作为参数并将行写入文件,并在每行末尾附加一个换行符。
每次使用 join() 将一个字符串写入一个新行的文件
您也可以使用该str.join()
方法每次在新行上将字符串写入文件。
with open('example.txt', 'w', encoding='utf-8') as my_file: a_list = ['bobby', 'hadz', 'com'] a_str = '\n'.join(a_list) my_file.write(f'{a_str}\n')
str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。
TypeError
请注意,如果可迭代对象中有任何非字符串值,该方法将引发 a 。如果您的 iterable 包含数字或其他类型,请在调用之前将所有值转换为字符串join()
。
with open('example.txt', 'w', encoding='utf-8') as my_file: a_list = ['bobby', 1, 'hadz', 2, 'com'] a_str = '\n'.join(map(str, a_list)) my_file.write(f'{a_str}\n')
我们
用换行符将列表中的字符串连接起来
,以将它们写到文件中的不同行中。
使用旧的 open() 语法的问题
您还可以使用要求您手动关闭文件的旧语法。
file = open('example.txt', 'w', encoding='utf-8') file.write('first line' + '\n') file.write('second line' + '\n') file.write('third line' + '\n') file.close()
代码示例在新行上将字符串写入文件,但是,我们必须在完成后手动关闭文件。
file.close()
另一方面,with open()
即使出现错误,该语句也会自动关闭文件。
file.write()
在不使用with
语句或调用的
情况下调用方法file.close()
可能会导致参数file.write()
未完全写入磁盘。
较新的with open()
语法是一个更好的选择,应该是您的首选方法。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: