Не удается устранить ошибку при перемещении файлов из одного каталога в другой каталог с помощью Python - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть вопрос, который
«Создайте программу, которая считывает имена файлов в каталоге« Task2 », имена в формате UmSn, где m=1 to 40 и n=1 to 40 разделяют файлы на разные каталоги на основе m, например U1,U2,U3......U40
Подсказки: используйте модуль 'os' для чтения каталогов и имен файлов.
Я пытался решить, но не могу.
Вот мой код

import shutil
import os,fnmatch
os.chdir("D:/MCS 2/MCS4/SL/Task2")
for i in range(1,41):
    os.mkdir("U"+str(i))
files = os.listdir()
pattern = "*.TXT"

for i in range(1,41):
    for f in files:
        if f.startswith("U"+str(i)) and fnmatch.fnmatch(f, pattern):
            shutil.move(f,("U"+str(i))) 

Я много пробовал, но не могу исправить эту ошибку.

  Traceback (most recent call last):
  File "C:\Users\kaleemi\AppData\Local\Programs\Python\Python37-32\lib\shutil.py", line 557, in move
    os.rename(src, real_dst)
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'U10S1.TXT' -> 'U10\\U10S1.TXT'

Файлы начинаются с U1 T0 U9 успешно перемещаются, но выдают ошибку при перемещении U10S1.TXT.
Следовательно, файл также U10S1.TXT существует в каталоге.
Пожалуйста, помогите мне найти, где я делаю неправильно в моем коде.

1 Ответ

0 голосов
/ 10 ноября 2018

Возможно, вы можете попытаться указать абсолютный путь вместо os.path.abspath():

from os.path import abspath
...
shutil.move(abspath(f),("U"+str(i))) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...