2017-04-03 1 views
0

Je souhaite déplacer des fichiers avec uniquement des extensions ".hex" dans le chemin source. J'ai écrit les codes comme ci-dessous;Déplacer des fichiers avec uniquement des extensions ".hex" en Python 3

os.makedirs(dst) 
src = "C:\\source_path" 
dst = "C:\\destination_path" 

for filename in os.listdir(): 
    if filename.endswith('.hex'): 
     shutil.move(src, dst , copy_function = copy2) 

Le fichier a été créé mais vide.

+0

double possible de [la liste des fichiers à partir d'un répertoire en utilisant python glob] (http://stackoverflow.com/questions/22625616/listing-files-from-a-directory-using-glob-python) –

+0

pourquoi utiliser 'copy_function = copy2' ?? essayez d'utiliser 'os.rename (src, dst)' 'shutil.move (src, dst)' – Surajano

+1

Vous devez spécifier le chemin du fichier et pas seulement les noms des répertoires. – bernie

Répondre

0
  1. Vous devez déplacer le fichier, pas le dossier. (Utilisez os.path.join(src,filename))
  2. vous ne passez pas au-dessus du src dir. (Utiliser os.listdir(src))

Essayez quelque chose comme ceci:

os.makedirs(dst) 
src = "C:\\source_path" 
dst = "C:\\destination_path" 

for filename in os.listdir(src): 
    if filename.endswith('.hex'): 
     shutil.move(os.path.join(src,filename), dst) 
0
src = "C:\\source_path" 
dst = "C:\\destination_path" 
os.makedirs(dst, exist_ok=True) 

Première voie;

source = os.listdir(src) 
for files in source: 
    if files.endswith(".hex"): 
     if not files.endswith("sample.hex"): 
      shutil.move(files,dst) 

Deuxième voie;

source = os.listdir(src) 
for files in source: 
    if files.endswith(".hex"): 
     if not files.endswith("sample.hex"): 
      shutil.move(os.path.join(src, files), os.path.join(dst, files))