gpt4 book ai didi

python - 如何解决 PermissionError : [Errno 13] Permission denied

转载 作者:行者123 更新时间:2023-12-05 05:59:24 48 4
gpt4 key购买 nike

你好,当我运行这个 python 脚本时,我得到了这个错误权限被拒绝。

import os

keyword = input("Enter Keyword to search : ")
replacement = input("Enter replacement string : ")

for filename in os.listdir():
with open(os.path.join(os.getcwd(), filename), 'r') as f: # open in readonly mode
content = f.read()
if keyword in content:
with open(os.path.join(os.getcwd(), filename), 'w') as fw: # open in write mode
writecontent = content.replace(keyword, replacement)
fw.write(writecontent)
print(f"Keyword {keyword} found and replaced in file : {filename}")


input("Press Enter to exit")

我得到的错误是

Traceback (most recent call last):
File "c:/Users/smraf/Desktop/Test Python/script.py", line 9, in <module>
with open(os.path.join(os.getcwd(), filename), 'r') as f:
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\username\\Desktop\\Test Python\\.vscode'

问题是当我在另一台笔记本电脑上运行它时它可以工作。我的同事尝试在他们的上运行它,但它也不起作用,所以我不确定为什么会出现此错误。

最佳答案

问题是您试图打开一个目录(在本例中为 .vscode),就好像它是一个文件一样。你不能这样做,如果你尝试在 Windows 上你会得到一个权限被拒绝的错误。以管理员身份运行脚本不会有任何影响。

当你的脚本遇到一个目录时应该怎么做?完全忽略它,还是递归处理目录中的文件?

如果您只需要忽略目录,请调用 os.path.isfile使用从 os.listdir() 获得的文件名,如果 os.path.isfile 返回 False,则跳过该文件名。但是,如果您需要递归处理文件,请查看 os.walk相反。

关于python - 如何解决 PermissionError : [Errno 13] Permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68168944/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com