首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python () PermissionError:[WinError 32]?

Python () PermissionError:[WinError 32]?
EN

Stack Overflow用户
提问于 2016-03-03 03:39:33
回答 1查看 4.7K关注 0票数 0

我试图通过在旧文件名之前添加数字来排序目录中的所有文件(例如,"Oldfilename"应该命名为"1. Oldfilename")。

代码语言:javascript
复制
import os
i=0
def OrderFile(x):
    ListOfFile=os.listdir(x)
    for file in  ListOfFile:
        global i
        filepath=os.path.join(x,file)
        file=str(i)+'. '+file
        newfilepath=os.path.join(filepath,file)
        i=i+1
        os.rename(filepath,newfilepath)

但我发现了一个错误:

代码语言:javascript
复制
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 
'D:\\baiduyundownload\\Tempo\\Active\\Learning\\Sleep.PNG' ->     
'D:\\baiduyundownload\\Tempo\\Active\\Learning\\Sleep.PNG\\1.Sleep.PNG'
  1. 我已经搜索了rename()的文档,但是没有任何帮助。
  2. 此外,我还搜索了十几个类似的问题,并且我知道在执行重命名函数之前必须打开我试图重命名的文件。
  3. 唯一与打开文件有关的可疑行为是“for”循环,但随后我发现foor循环给我的元素是str类型的。
  4. 此外,我还试图通过手动设置'src‘和'dst’来重命名上面的文件,它运行得很好。因此,文件本身与错误无关。
  5. 然后我就被困住了。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-03 03:48:26

filepath已经包含其中的文件名。您想要重命名x\file而不是filepath\file

代码语言:javascript
复制
import os
i=0
def OrderFile(x):
    ListOfFile=os.listdir(x)
    for file in  ListOfFile:
        global i
        filepath=os.path.join(x,file)
        file=str(i)+'. '+file
        newfilepath=os.path.join(x,file)
        i=i+1
        os.rename(filepath,newfilepath)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35762741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档