Сохранение / копирование скрипта Python в определенный каталог - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь написать скрипт, который будет сохранять файл в указанном каталоге, но я получаю NotADirecotryError [WinError 267] всякий раз, когда я запускаю его. Любые идеи или советы о том, что я, возможно, сделал неправильно?

import shutil
import os

src = 'C:\\Users\\SpecificUsername\\Pictures\\test.txt\'
dest = 'C:\\Users\\SpecificUsername\\Desktop'
files = os.listdir(src)

for file in files:
    shutil.copy(file, dest)

for file in files:
    if os.path.isfile(file):
        shutil.copy(file,dest) ```

1 Ответ

0 голосов
/ 23 октября 2019

Здесь происходит несколько вещей:

  1. Вы можете просто использовать косую черту в путях.
  2. Ваш src - это файл test.txt, ине каталог, поэтому вы не можете выполнить итерацию по нему с помощью os.listdir().
  3. Вы также можете объединить два цикла, так как они циклически перебирают один и тот же набор данных.
  4. shutil.copy() занимаетпуть к файлу в качестве входных данных, а то, что вы передаете, - это имя файла.

Следующий код должен работать, и он также копирует каталоги как:

import shutil
import os

basepath = "C:/Users/SpecificUsername/"
src = "Pictures/"
dest = "Desktop/"
files = os.listdir(os.path.join(basepath, src))

for filename in files:
    filepath = os.path.join(basepath, src, filename)
    if (os.path.isfile(filepath)):
        print("File: " + filename)
        shutil.copy(filepath,dest)
    else:
        print("Dir: " + filename)
        shutil.copytree(filepath, os.path.join(dest, filename))

Надеюсь, это поможет!

...