Python write() 和 writelines()

文摘   科技   2024-10-27 22:43   上海  

点击蓝字,关注山海摸鱼人

目录:

  1. 写入单行数据:write()
  2. 写入多行数据:writelines()
  3. 实际应用场景

写入单行数据: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 都会在文件末尾追加一条新记录,包括时间和动作描述。

山海摸鱼人
致力于记录美好之瞬间,追寻美好之明天。
 最新文章