如何解决尝试重命名文件时出现Python Win 32错误
我有一个包含多个csv文件的文件夹。我必须使用在文件中找到的字符串来更改每个文件的文件名。所以我尝试了下面的脚本。在我尝试重命名文件之前,它似乎一直可以正常工作。
我尝试了什么:
- 首先,我的程序中没有file.close()行,但没有解决问题
- 我添加了一行print(file.closed)来查看文件是否实际上已关闭
- 我试图从缩进的“ with”块中获取os.rename。但是我一直收到同样的错误
- 我试图使os.rename不受限制。但是然后我得到一个Winerror 123,它说文件名,目录名等不正确。
- 我还阅读了问题WindowsError 32 while trying to os.rename和Windows Error: 32 when trying to rename file in python。
- 我知道也许我必须使用f.close关闭文件,因为这是处理程序,但是效果也不好。
我尝试过的代码:
for f in glob.glob("/path/*.csv"):
with open(f,"r") as file:
#read the lines in the csv-file
data = file.read()
#search the lines that have been read for a pattern and save that in "search"
search = re.findall("some_pattern",data)
#The result was a list. With this line I tried to change it into a string
file.close()
Listtostring = ''.join([str(elem) for elem in search])
#I only want to use a part of the match in the new file name
name = Listtostring.replace("part_of_string","")
os.rename(f,f+name)
我希望有人能给我一些提示,并解释我做错了什么。对于Python来说还很陌生,所以如果您能给我一些有关我的错误的见解,那就太好了!
解决方法
感谢您的评论和时间。似乎打开的文件之一在某些过程中仍很忙,因此代码无法正常工作。首先,我关闭了所有正在运行的应用程序,但是没有用。之后,我重新启动计算机,脚本运行正常!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。