我正在使用python 2.7x。我对python很新,非常感谢你的帮助。我已经阅读了很多帖子,包括下面显示的那些帖子,仅列举了一些关于此错误的信息:
WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'new.dat' - >我的文件关闭指令已经结束了。
python 2 [Error 32] The process cannot access the file because it is being used by another process - >我不能使用shutil,因为我正在使用的python程序中有一些错误,我无法编辑该路径,因为我的计算机受到管理员保护。
Rename Files in Python - >根据建议后,我收到了NameError:名称'rename'未定义...:/
等等。
在尝试纠正我的代码后,我仍然遇到同样的错误。
我想要做的是:我读取目录中的文件,如果任何文件包含特定字符串,我会重命名文本文件 (即first.txt到firstfound.txt。)
编辑版: 在重命名文件之前,我尝试移动abc.close():
import os
fname = raw_input("Enter file name: ")
#fill in file directory here
abc = open(fname)
for line in abc:
if not line.find("scramble") :
continue
oldfile = fname
abc.close()
if oldfile == fname:
for title in fname:
endname = title.find('.txt')
oldtitle = title[:endname]
newfile = oldtitle +"found.txt"
os.rename(oldfile,newfile)
但是我在最后一行有这个错误。 os.rename(的oldfile,newfile中) WindowsError:[错误183]当该文件已存在时无法创建文件。我的文件夹中没有新名称的文件。 非常感谢您的建议!
编辑版本2:我还尝试了另一组代码,但它给了我WindowsError:[错误5]访问被拒绝。我是否知道是否有这样的事情我无法重命名txt文件,因为我没有管理员权限?谢谢!
import os
fname = raw_input("Enter file name: ")
#fill in file directory here
abc = open(fname)
for line in abc:
if not line.find("scramble") :
continue
oldfile = fname
abc.close()
if (oldfile == fname): #+'/' + "a.txt"
for title in fname:
endname = title.find('.txt')
oldtitle = title[:endname]
new_file = oldtitle +'/' + "a.txt"
os.rename(fname,new_file)
INITIAL版本:我得到的错误是在os.rename行。 “WindowsError:[错误32]进程无法访问该文件,因为它正由另一个进程”
使用我的整个程序代码如下所示:
import os
fname = raw_input("Enter file name: ")
#fill in file directory here
abc = open(fname)
for line in abc:
if not line.find("scramble") :
continue
old_file = fname
for title in fname:
endname = title.find('.txt')
oldtitle = title[:endname]
new_file = oldtitle +'/' + "found.txt"
os.rename(old_file,new_file) ##WindowsError: [Error 32] The process cannot access the file because it is being used by another process
abc.close()
我不明白为什么这个错误仍然存在。 (我已关闭所有文件和文件夹)。非常感谢你!
答案 0 :(得分:1)
问题很可能是由于您的代码中的open()调用造成的。 python中的open()函数打开文件文件进行读/写,因此如果你打开一个文件,那么当它在另一个位置打开时你不能对它进行重命名。
相反,你应该打电话给
function filterByAlbum(){
const albumFilter = entry =>
(this.albumFilter == 'All') ||
(this.albumFilter == 'Neither' && !entry.relatedRecording) ||
(entry.relatedRecording === this.albumFilter);
const yearFilter = entry =>
(this.yearFilter == 'Year') ||
(new Date(entry.postDate.date).getFullYear() == this.yearFilter);
const reducer = (accumulator, entry) => {
if (albumFilter(entry) && yearFilter(entry))
accumulator.push(entry);
return accumulator;
}
return this.pressEntries.reduce(reducer, []);
}
new Vue({
el: "#app",
data() {
return {
pressEntries,
albumFilter: 'All',
yearFilter: 'Year'
}
},
computed:{
filterByAlbum
}
})
重命名文件之前。
有关文件I / O的更多信息,请参阅this link。