在 Python 中将用户输入保存到文件中
How to save user input to a File in Python
将用户输入保存到文件:
- 使用该
with open()
语句以写入模式打开文件。 - 使用
input()
函数从用户那里获取输入。 - 使用
file.write()
方法将输入写入文件。 - 该
with
语句自动关闭文件。
主程序
# ✅ Save user input to file file_name = 'example.txt' with open(file_name, 'w', encoding='utf-8') as my_file: my_file.write(input('Your message: ')) # ------------------------------------------------- # ✅ Take filename and contents of file from user input file_name = input('Filename with extension, e.g. example.txt: ') with open(file_name, 'w', encoding='utf-8') as my_file: my_file.write(input('Your message: '))
with open()
即使引发异常,语法也会自动关闭文件。第一个示例将用户输入写入名为的文件example.txt
,第二个示例提示用户输入文件名。
主程序
file_name = 'example.txt' with open(file_name, 'w', encoding='utf-8') as f: f.write(input('Your message: '))
open函数打开一个文件并返回对应的文件对象。
您最常将以下 3 个参数传递给该open
函数:
姓名 | 描述 |
---|---|
文件名 | 文件名 |
模式 | 打开文件的模式,例如r 读取或w 写入(默认为r ) |
编码 | 使用什么编码来解码或编码文件(默认是平台相关的) |
我们使用write()
文件对象上的方法将用户输入写入文件。
( w
write) 模式截断文件并打开它进行写入。
如果需要附加到文件,可以使用a
(append) 模式。
主程序
file_name = 'example.txt' with open(file_name, 'a+', encoding='utf-8') as my_file: my_file.write(input('Your message: ') + '\n')
该
a+
模式打开文件进行读取和追加。如果文件不存在,则创建该文件。我在用户输入的末尾添加了一个换行符,所以它每次都从一个新行开始,但你不必这样做。
第二个示例从用户输入中获取文件名和文件内容。
主程序
file_name = input('Filename with extension, e.g. example.txt: ') with open(file_name, 'w', encoding='utf-8') as f: f.write(input('Your message: '))
文件名应包含扩展名,例如example.txt
.
输入函数接受一个可选prompt
参数并将其写入标准输出而没有尾随换行符。
您可能还会看到更旧的、更手动的语法,其中显式调用
close()
正在使用的方法。
主程序
file_name = 'example.txt' f = open(file_name, 'w', encoding='utf-8') f.write(input('Your message: ')) f.close()
你通常应该避免这种语法,因为它要求我们在写入文件后手动关闭文件。
我们还必须处理任何错误,因为close()
如果在此之前发生错误,对该方法的调用将不会运行。
最佳做法是使用该with
语句,因为它会自动关闭文件,即使出现错误也是如此。
主程序
file_name = 'example.txt' with open(file_name, 'w', encoding='utf-8') as my_file: my_file.write(input('Your message: '))