Napisałem skrypt do przenoszenia plików wideo z jednego katalogu do drugiego, a także przeszukiwania podkatalogów za pomocą os.walk. jeśli jednak skrypt znajdzie plik wideo, przeniesie on tylko ten plik, a nie folder zawierający. Dodałem instrukcję if, aby sprawdzić, czy folder zawierający różni się od oryginalnego folderu wyszukiwania.Python: Używanie shutil.move lub os.rename do przenoszenia folderów
Nie mogę znaleźć kodu, aby faktycznie przenieść (lub zmienić nazwę?) Folder i plik do innego katalogu. dużo czytałem/oglądałem na przenoszeniu plików i jest wiele informacji na ten temat, ale nie mogę znaleźć niczego do przenoszenia folderów.
Próbowałem używać shutil.move i os.rename i otrzymuję błąd oba razy. kiedy próbuję i szukam problemu, otrzymuję wiele wyników dotyczących przenoszenia plików lub zmiany bieżącego katalogu roboczego Pythona.
każda rada (a nawet jak nazywać wyszukiwarkę Google dokładnym opisem, jak znaleźć tutorial na ten temat) byłaby naprawdę doceniana. to mój pierwszy prawdziwy program Pythona i wiele się nauczyłem, ale ten ostatni krok mnie zmęczy!
EDIT: gdy próbuje użyć os.rename(src_file, dst_file)
pojawia się błąd WindowsError: error 3 The system cannot find the path specified.
podczas próby shutil.move(src_file, dst_file)
ja dostać ioerror errno 2 no such file or directory "H:\\Moviesfrom download...\OneOfTheVideoFilesNotInParentFolder
czyli folderu i pliku musi się poruszać.
dzięki.
ps jak powiedziałem, że to mój pierwszy skrypt poza akademią kodu, więc wszelkie przypadkowe sugestie będą również mile widziane.
import os
import shutil
import time
movietypes = ('.3gp', '.wmv', '.asf', '.avi', '.flv', '.mov', '.mp4', '.ogm', '.mkv',
'. mpg', '.mpg', '.nsc', '.nsv', '.nut', '.a52', '.tta', '.wav', '.ram', '.asf',
'.wmv', '. ogg', '.mka', '.vid', '.lac', '.aac', '.dts', '.tac',
'.dts', '.mbv')
filewrite = open('H:\\Movies from download folder\\Logs\\logstest.txt', 'w')
dir_src = "C:\\Users\\Jeremy\\Downloads\\"
dir_dst = "H:\\Movies from download folder\\"
for root, dirs, files in os.walk(dir_src):
for file in files:
if file.endswith(movietypes) == True:
filestr = str(file)
locationoffoundfile = os.path.realpath(os.path.join(root,filestr))
folderitwasin = locationoffoundfile.replace(dir_src,'')
folderitwasin = folderitwasin.replace(filestr,'')
pathofdir = os.path.realpath(root) + "\\"
if pathofdir != dir_src:
src_file = locationoffoundfile
dst_file = dir_dst + folderitwasin + filestr
os.rename(src_file, dst_file) #****This line is the line im having issues with***
print src_file
print dst_file
filewrite.write(file + " " + "needs to have dir and file moved Moved!" + '\n')
else:
src_file = os.path.join(dir_src, file)
dst_file = os.path.join(dir_dst, file)
print src_file
print dst_file
shutil.move(src_file, dst_file)
filewrite.write(os.path.dirname(file) + '\n')
filewrite.write(file + " " + "needs to have file moved Moved!" + '\n')
filewrite.close()
_ "Próbowałem używać shutil.move i os.rename i otrzymuję błąd dwa razy." _ Co mówi ten błąd? – Kevin
Mam zaktualizowany mój oryginalny wpis ze szczegółami błędu. – user3560858