Ho scritto uno script per spostare i file video da una directory a un'altra, inoltre cercherà sottodirectory usando os.walk. tuttavia, se lo script trova un file video, sposta solo il file e non la cartella contenente. Ho aggiunto un'istruzione if per verificare se la cartella contenente è diversa dalla cartella di ricerca originale.Python: utilizzo di shutil.move o os.rename per spostare le cartelle
Non riesco a trovare il codice per spostare (o rinominare?) Effettivamente la cartella e il file in una directory diversa. Ho letto/guardato molto sui file in movimento e ci sono molte informazioni su questo, ma non trovo nulla per spostare le cartelle.
Ho provato a usare shutil.move e os.rename e ottengo un errore entrambe le volte. quando provo a cercare il problema ottengo molti risultati su come spostare i file o su come modificare la directory di lavoro corrente di python.
qualsiasi consiglio (anche come esprimere la ricerca su google per descrivere con precisione come trovare un tutorial sull'argomento) sarebbe molto apprezzato. è il mio primo vero programma Python del mondo reale e ho imparato molto, ma questo ultimo passo mi sta rovinando!
EDIT: quando si cerca di utilizzare os.rename(src_file, dst_file)
ho l'errore WindowsError: error 3 The system cannot find the path specified.
quando si cerca shutil.move(src_file, dst_file)
ottengo ioerror errno 2 no such file or directory "H:\\Moviesfrom download...\OneOfTheVideoFilesNotInParentFolder
cioè la cartella e il file ha bisogno di muoversi.
grazie.
ps come ho detto è la mia prima sceneggiatura al di fuori dell'accademia del codice, quindi qualsiasi suggerimento casuale sarebbe anche apprezzato.
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()
_ "Ho provato a usare shutil.move e os.rename e ottengo un errore entrambe le volte." _ Che cosa dice l'errore? – Kevin
ho aggiornato il mio post originale con i dettagli dell'errore. – user3560858