2017-01-17 15 views
0

Я пытался добавить «Q3» в начало 89 PDF-файлов в одной папке. Мне удалось получить результаты с представленным решением. HEREПереименование каталога файлов PDF с использованием Python почти работает

это работает, но только для примерно 10-15 файлов, прежде чем он остановится с множеством ошибок, которые кажутся и не имеют определенного порядка, что означает, что примерно 10-15 разное каждый раз , я либо получаю «FileNotFoundError: [WinError 2] Система не может найти указанный файл:« или «PermissionError: [WinError 32] Процесс не может получить доступ к файлу, потому что он используется другим процессом:«

Я понимаю «permissionserror» связан с тем, что файл .py, с которым я работаю и работаю, находится в том же каталоге, что и файлы PDF, поэтому он работает над этим файлом. Но, помещая его в тот же каталог, было предложено в вышеупомянутом связанном решении для решения WinError2, и до этого он ничего не сделал.

* первая часть кода, чтобы удалить некоторые нежелательные файлы, которые отображаются и не могут иметь отношение к вопросу

import os 
my_dir = "DIRECTORY OF PDF FILES" 
for fname in os.listdir(my_dir): 
    if fname.startswith('Copy') or fname.startswith('SxDI'): 
     os.remove(os.path.join(my_dir, fname)) 

for fname in os.listdir(my_dir): 
    os.rename(fname, "Q3" + fname) 
+0

Действительно ли это действительный URL? – innisfree

+0

Мои извинения не были полностью копированы. ссылка работает – Ungara

ответ

0

Похоже, вы изменяете список, который вы итерация.

Try:

files_to_rename = [fname in os.listdir(my_dir) if not (fname.startswith('Copy') or fname.startswith('SxDI'))] 

for fname in files_to_rename: 
    os.rename(fname, "Q3" + fname") 

Это проверялось, но идея состоит в том, чтобы захватить имя все, что нужно изменить в первую очередь, затем изменить их.