ошибка копирования папки с помощью python

#python #python-3.x #subprocess #directory #copy-paste

#python #python-3.x #подпроцесс #каталог #копировать-вставить

Вопрос:

я создал программу, которая автоматически копирует USB-устройство. когда он копирует usb, он создает одну папку в правильном месте назначения и одну папку в том же пути к программе python. я хочу, чтобы он создавал только одну папку в правильном месте назначения! Спасибо

это код:

 import shutil
from array import *
import math
import time
import os
import sys
import random
import datetime


def data():
     now = datetime.datetime.now()
     format = "%d %b %H.%M"
     global now_date
     now_date = now.strftime(format)
     format = "%M"
     global minuti
     minuti = now.strftime(format)

data()
old_date = now_date

alfabeto = ['A:','B:','F:','G:','H:','I:','L:','M:','N:','O:',] #mancano e,c,d

a = (r'')
b=random.choice('abcdefghilmnopqrstuvz1234567890èòàù')
new_dir = '{}'.format(now_date) 
inc = (r'C:documentiprogramfilecollegamenti'') 
incollaa = "".join([inc, new_dir,' ',b])
i=0

while True:
     try:
          if i==10:  i=0
          time.sleep(1)          
          copiaa = "".join([a, alfabeto[i]])
          i=i 1
          shutil.copytree(copiaa,incollaa)
          if not os.path.exists(new_dir):  
                 os.makedirs(new_dir)


          break
     except FileNotFoundError:
          pass
  

Ответ №1:

Ваша проблема заключается в следующих строках:

 if not os.path.exists(new_dir):  
    os.makedirs(new_dir)
  

Поскольку new_dir это относительный путь (строка даты), он будет создан в рабочей папке вашего скрипта.

Комментарии:

1. тогда я должен изменить new_dir на incollaa?

2. Я только что понял, что команда copytree автоматически создает новую папку, фрагмент кода бесполезен. Спасибо