Я работаю с питоном 2.7x. Я новичок в python и буду очень признателен за вашу помощь. Я прочитал много сообщений, в том числе показанных ниже, чтобы назвать несколько об этой ошибке:
WindowsError: [Ошибка 32] Процесс не может получить доступ к файлу, поскольку он используется другим процессом: 'new.dat' --> моя инструкция по закрытию файла уже находится в конце.
python 2 [Ошибка 32] Процесс не может получить доступ к файлу, потому что он используется другим процессом --> Я не могу использовать Shutil, так как в программе Python, которую я использую, есть ошибка, и я не могу изменить путь как мой компьютер защищен администратором.
Переименовать файлы в Python --> После выполнения предложения я получил NameError: name '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) Ошибка Windows: [Ошибка 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)
НАЧАЛЬНАЯ версия: Ошибка, которую я получил, находится в строке os.rename. «Ошибка Windows: [Ошибка 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()
Я не понимаю, почему эта ошибка сохраняется. (Я закрыл все файлы и папки). Большое спасибо!