【问题标题】:How to append text to multiple files in python?如何在python中将文本附加到多个文件?
【发布时间】:2021-05-21 18:51:16
【问题描述】:

有多个示例如何将文本附加到单个文件。

我想做的是将相同的文本附加到“文件夹1”中的所有文件。

这是我迄今为止尝试过的。

import os

dir = (r'C:\Users\User1\Desktop\folder1')

for i in os.listdir(dir):
        file = open(dir, 'a')
        file.write("My desired text" + "\n")

file.close()

我现在得到的是这个错误:

PermissionError: [Errno 13] 权限被拒绝: 'C:\Users\arvydas\Desktop\nice_name'

我有:

  • 以管理员身份在 windows 上通过 cmd 运行脚本
  • 确保文件夹名称与文件名不同 -检查文件夹权限..

怎么了?

【问题讨论】:

  • 可能不是您的问题,但请注意 .close 调用需要在循环中(或者,使用 with 自动关闭。目前,您的代码仅关闭最后一个文件.
  • 您正在打开 dir 这是一个文件夹,所以它当然会失败。大概你打算打开i

标签: python text append permission-denied


【解决方案1】:

当然,您的文件会指向您的文件夹。 因此,如果您使用该路径创建文件夹

file = open(dir, 'a')

你基本上在做

file = open(r'C:\Users\User1\Desktop\folder1', 'a')

显然,这不是你想要的。我看到您正在使用i 遍历文件夹文件。那么为什么不使用它呢? 此外,使用普通的 i 将不起作用。你必须把它和你的dir结合起来。

import os

dir = (r'/Users/aspera/Documents/Python/Py_Programs/tests/my_folder')

for i in os.listdir(dir):
        file = open(f"{dir}/{i}", 'a')
        file.write("My desired text" + "\n")

file.close()

【讨论】:

  • 谢谢,我已按照您的建议将 dir 替换为 i 。现在代码运行没有错误,但文件中没有出现所需的文本。
  • 有效!!今晚或任何时候我都无法想到这个 (f"{dir}/{i}", 'a') 行。我对python太陌生了,但我很高兴我可以用它做有用的事情。这是魔术。非常感谢@BuddyBob 抽出宝贵时间帮助我。周五晚上愉快!
猜你喜欢
  • 2021-12-15
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 2012-03-07
  • 1970-01-01
  • 2021-12-13
相关资源
最近更新 更多