it-swarm.com.de

Verschieben Sie alle Dateien mit Python von einem Verzeichnis in ein anderes

Ich möchte alle Textdateien mit Python aus einem Ordner in einen anderen Ordner verschieben. Ich habe diesen Code gefunden:

import os, shutil, glob

dst = '/path/to/dir/Caches/com.Apple.Safari/WebKitCache/Version\ 4/Blobs '
try:
    os.makedirs(/path/to/dir/Tumblr/Uploads) # create destination directory, if needed (similar to mkdir -p)
except OSError:
    # The directory already existed, nothing to do
    pass

for txt_file in glob.iglob('*.txt'):
    shutil.copy2(txt_file, dst)

Ich möchte, dass alle Dateien im Ordner Blob verschoben werden. Ich erhalte keine Fehlermeldung, aber die Dateien werden auch nicht verschoben.

16
malina

Versuche dies..

import shutil
import os

source = '/path/to/source_folder'
dest1 = '/path/to/dest_folder'


files = os.listdir(source)

for f in files:
        shutil.move(source+f, dest1)
29
Shivkumar kondi

Das Kopieren der ".txt" -Datei von einem Ordner in einen anderen ist sehr einfach und die Frage enthält die Logik. Nur der fehlende Teil ersetzt die richtigen Informationen wie folgt:

import os, shutil, glob

src_fldr = r"Source Folder/Directory path"; ## Edit this

dst_fldr = "Destiantion Folder/Directory path"; ## Edit this

try:
  os.makedirs(dst_fldr); ## it creates the destination folder
except:
  print "Folder already exist or some error";

die folgenden Codezeilen kopieren die Datei mit der Erweiterung * .txt von .__

for txt_file in glob.glob(src_fldr+"\\*.txt"):
    shutil.copy2(txt_file, dst_fldr);
4
ToUsIf

Bitte werfen Sie einen Blick auf die Implementierung der copytree -Funktion, die:

  • Verzeichnisdateien auflisten mit:

    names = os.listdir(src)

  • Dateien kopieren mit:

    for name in names: srcname = os.path.join(src, name) dstname = os.path.join(dst, name) copy2(srcname, dstname)

Das Abrufen von dstname ist nicht erforderlich, da, wenn der Zielparameter ein Verzeichnis angibt, die Datei in dst mit dem Basisdateinamen von srcname.

Ersetzen Sie copy2 durch move.

2

Das sollte den Trick tun. Lesen Sie auch die documentation des shutil-Moduls, um die Funktion auszuwählen, die Ihren Bedürfnissen entspricht (shutil.copy (), shutil.copy2 (), shutil.copyfile () oder shutil.move ()).

import glob, os, shutil

source_dir = '/path/to/dir/with/files' #Path where your files are at the moment
dst = '/path/to/dir/for/new/files' #Path you want to move your files to
files = glob.iglob(os.path.join(source_dir, "*.txt"))
for file in files:
    if os.path.isfile(file):
        shutil.copy2(file, dst)
1
Byakko_Haku