2016-09-21 3 views
0

Я пытаюсь переименовать сценарий, чтобы он был отправлен как письмо (которое является первой частью скрипта, но не имеет значения для этой части), затем переименуйте, и сортировать его в папку «Полный». Это то, что мой код выглядитos.rename return winerror 2

Edit - У меня есть все импортированные вещи путь в верхней и я не показал, но я предполагаю, что я правильный материал импортируется, если вы хотели бы видеть только спросить

dir5 = "C:\\Users\\Michael D\\Documents\\Test\\AmLit" 
dir6 = "C:\\Users\\Michael D\\Documents\\Test\\History" 
dir7 = "C:\\Users\\Michael D\\Documents\\Test\\MultiLit" 
dir8 = "C:\\Users\\Michael D\\Documents\\Test\\Physics" 
dir5_final = "C:\\Users\\Michael D\\Documents\\TestMove\\AmLit" 
dir6_final = "C:\\Users\\Michael D\\Documents\\TestMove\\History" 
dir7_final = "C:\\Users\\Michael D\\Documents\\TestMove\\MultiLit" 
dir8_final = "C:\\Users\\Michael D\\Documents\\TestMove\\Physics" 


now = datetime.datetime.now() 
now1 = (str(now.day) + '/' + str(now.month) + '/' + str(now.year)) 

dir5_files = os.listdir(dir5) 
dir6_files = os.listdir(dir6) 
dir7_files = os.listdir(dir7) 
dir8_files = os.listdir(dir8) 

for f in dir5_files: 
    if (f.startswith("A") or f.startswith("a")): 
     os.rename(f, now1 + " " + f) 

, но я получаю эту ошибку

RESTART: C:/Users/Michael D/Documents/Coding/Schoolwork Email/Email Sender Beta 1.7.21.9.16.py 
Traceback (most recent call last): 
    File "C:/Users/Michael D/Documents/Coding/Schoolwork Email/Email Sender Beta 1.7.21.9.16.py", line 148, in <module> 
    os.rename(f, now1 + " " + f) 
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'A Test.txt' -> '21/9/2016 A Test.txt' 

любые мысли относительно того, что я делаю неправильно?

+0

Вы не получаете полный путь от 'os.listdir()', либо меняете рабочий каталог, либо задаете полный путь к 'rename()'. –

ответ

1

2 ошибки:

  1. Вы не в текущем каталоге

  2. Вы просто не можете иметь косую черту в названиях. Файловая система не позволит использовать ее, как она есть (поочередно) для разделения частей пути.

Во-первых, генерировать дату непосредственно подчеркиванием:

now1 = (str(now.day) + '_' + str(now.month) + '_' + str(now.year)) 

Затем замените

os.rename(f, now1 + " " + f) 

по

os.rename(os.path.join(dir5,f), os.path.join(dir5,now1.replace("/","_") + " " + f)) 

и A Test.txt будет переименован в 21_9_2016 A Test.txt в указанном вами каталоге.

+0

Все еще возвращает ту же ошибку – Kiwi0

+0

см. Мое редактирование. Проблема с текущим dir PLUS slashes –

+0

ему также нужно использовать 'os.path.join', чтобы добавить префикс каталога к именам файлов. – Barmar

Смежные вопросы