我正在编写一个函数来将文本文件的每一行复制到一个新文件中,除非该行是特别指定的行,在这种情况下它将改变该行的一部分,然后将该行保存为正常新文件。
我问这个是因为我尝试使用this question中给出的修复,但我仍然遇到同样的错误。
回答潜在问题:
这是功能:
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'
据我所知,问题在于文件的打开/关闭/重命名。
答案 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')
(我对字符串进行了硬编码。使用适合您程序的变量)