目录:
写入单行数据: write()
写入多行数据: writelines()
实际应用场景
写入单行数据:write()
首先,我们来看 write()
方法。这个方法接受一个字符串作为参数,并将其写入到文件中。如果我们想要写入多行数据,需要自己手动添加换行符 \n
。
示例代码:
假设我们要创建一个文件 shanhai_moyuren.txt
并在里面写入一段文本,我们可以这样做:
# 打开文件,模式为 'w',表示写入模式,这将覆盖任何已存在的文件内容
with open('shanhai_moyuren.txt', 'w', encoding='utf-8') as file:
# 写入一行数据
file.write('这是第一行。\n')
# 写入第二行数据
file.write('这是第二行。\n')
print("写入完成!")
在这个例子中,我们使用了 with open(...)
语句,它会自动处理文件关闭的问题。这样即使在写入过程中发生错误,文件也能正确关闭。我们还指定了 encoding='utf-8'
来确保我们的文件以 UTF-8 编码存储。
写入多行数据:writelines()
当我们需要写入大量数据时,手动添加换行符就变得不切实际了。这时 writelines()
就派上了用场。writelines()
接受一个字符串列表作为参数,并依次将这些字符串写入文件中。但是请注意,writelines()
不会在每个字符串之后自动添加换行符,所以如果需要的话,我们必须确保每个字符串都包含了适当的换行符。
示例代码:
现在让我们来尝试使用 writelines()
来写入多个句子到 shanhai_moyuren.txt
文件中:
sentences = [
'这是新的一天。\n',
'太阳正在升起。\n',
'在山海摸鱼。\n'
]
# 使用 'a' 模式打开文件,表示追加模式,新的内容将被添加到文件末尾
with open('shanhai_moyuren.txt', 'a', encoding='utf-8') as file:
# 使用 writelines() 写入句子列表
file.writelines(sentences)
print("更多内容已追加到文件中。")
这里我们选择了 a
模式来打开文件,这意味着我们将在现有内容后面追加新的内容,而不是覆盖它们。如果你希望每次运行脚本都重写文件,可以选择 w
模式。
实际应用场景:备份日志
在实际工作中,write()
和 writelines()
常常用来处理日志记录、配置文件更新等任务。例如,当应用程序需要记录用户操作时,可以使用 writelines()
来将一系列事件追加到日志文件中,而不必担心每次写入都要手动添加换行符。
日志记录示例:
from datetime import datetime
# 假设我们有一个函数记录用户的操作
def log_action(action):
with open('log.txt', 'a', encoding='utf-8') as log_file:
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
log_entry = f"{timestamp}: {action}\n"
log_file.write(log_entry)
# 用户执行了某些动作
actions = [
"用户登录",
"用户浏览页面",
"用户购买商品"
]
for action in actions:
log_action(action)
print("日志记录完成。")
在这个日志记录的例子中,我们定义了一个 log_action
函数,它接受一个动作描述作为参数,并将其记录到 log.txt
文件中。每次调用 log_action
都会在文件末尾追加一条新记录,包括时间和动作描述。