Python:[WinError 32]问题

时间:2014-01-28 20:34:26

标签: python

我正在编写一个函数来将文本文件的每一行复制到一个新文件中,除非该行是特别指定的行,在这种情况下它将改变该行的一部分,然后将该行保存为正常新文件。

我问这个是因为我尝试使用this question中给出的修复,但我仍然遇到同样的错误。

回答潜在问题:

  • 我有一个名为'save.txt'的文件被重命名为'oldsave.txt',以便创建一个名为'save.txt'的新文件。
  • 'rN'只是另一个函数生成的整数值。
  • 我需要的所有库都是在调用函数之前导入的

这是功能:

os.rename(file1,'oldsave.txt') 
oldSave = open(file1)
newSave = open('save.txt','a')

count = 1
for line in oldSave:    
    if count != rN: 
        newSave.write(line)
    else:
        chosen_album = []
        line = line.strip()
        chosen_album.append(line.split('|'))
        chosen_album[4] += 1
        newSave.write(chosen_album)
    count += 1
oldSave.close()
newSave.close()
os.rename('newsave.txt','save.txt')
os.remove('oldsave.txt')

这是我运行时遇到的错误:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'oldsave.txt'

据我所知,问题在于文件的打开/关闭/重命名。

1 个答案:

答案 0 :(得分:0)

如果我理解了您的问题,file1 'save.txt'那么......

oldSave = open(file1)
newSave = open('save.txt','a')

意味着你正在尝试:

oldSave = open('save.txt')
newSave = open('save.txt','a')

我认为这不是你想要的。您 尝试做的是:

oldSave = open('oldsave.txt')
newSave = open('save.txt','a')

(我对字符串进行了硬编码。使用适合您程序的变量)