it-roy-ru.com

Перемещение всех файлов из одного каталога в другой с использованием 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. Я не получаю сообщение об ошибке, но он также не перемещает файлы.

16
malina

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

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

Копирование файла ".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);
4
ToUsIf

Это должно сделать свое дело. Также прочитайте документацию модуля 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)
1
Byakko_Haku

Пожалуйста, взгляните на реализацию функции 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 необязательно, поскольку, если параметр назначения указывает каталог, файл будет скопирован в dst с использованием базового имени файла из srcname.

Замените copy2 на move.

0
Rachel M. Carmena