2017-01-24 10 views
5

Я хочу переместить все текстовые файлы из одной папки в другую папку с помощью Python. Я нашел этот код:Перемещение всех файлов из одного каталога в другой с помощью Python

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) 

Я хочу, чтобы это переместить все файлы в папке Blob. Я не получаю сообщение об ошибке, но он также не перемещает файлы.

ответ

7

Попробуйте это ..

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) 
1

Это должно сделать трюк. Также прочитайте documentation модуля shutil, чтобы выбрать функцию, которая соответствует вашим потребностям (shutil.copy(), shutil.copy2(), shutil.copyfile() или 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) 
+0

но где я определить новый назначение для файлов txt? – malina

0

Пожалуйста, обратите внимание на реализации функции copytree которых:

  • файлы каталога Список с:

    names = os.listdir(src)

  • Копирование файлов с:

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

Получение dstname не нужно, потому что если параметр назначения указывает каталог, файл будет скопирован в целевой_адрес с помощью основного файла из srcname.

Заменить copy2.

3

Копирование файла «.txt» из одной папки в другую очень просто и вопрос содержит логику. Только недостающая часть подставляя с правильной информацией, как показано ниже:

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"; 

ниже строк кода будет копировать файл с расширением * .txt файлов расширения от src_fldr к dst_fldr

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