Ошибка имени в shutil и pathlib в командной строке cmd - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь найти файлы в каталоге, скопировать их полный путь Windows в список и скопировать эти файлы во временную папку.с помощью приведенного ниже кода я могу только скопировать имя файла.Я пытался использовать модуль pathlib, но он продолжает выдавать ошибку имени, когда я запускаю его в командной строке.Любые предложения будут полезны .

Я предпочитаю использовать модули pathlib и shutil, но он не запускается из командной строки и выдает ошибку имени.

Любые предложения будут полезны

def searching_all_files(directory):
    dirpath = directory
    #assert(dirpath.is_dir())
    file_list = []
    temp= os.path.abspath(r'C:\Temp')
    for x in os.listdir(dirpath):
        if 'Settlement_Report' in os.path.basename(x):
            s=os.path.basename(x)
            file_list.append(s)
            shutil.copyfile(os.path.join(dirpath,os.path.basename(x)),os.path.join(temp,os.path.basename(x)))
    return file_list 

p=r"some path in single slash format"
path = os.path.abspath(p)
files = searching_all_files(path)

ошибка -

Traceback (most recent call last):
File "C:\Program Files\WinPython\WinPython 64bit 3.6.2.0Qt5\python-3.6.2.amd64\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec)
File "C:\Program Files\WinPython\WinPython 64bit 3.6.2.0Qt5\python-3.6.2.amd64\lib\runpy.py", line 85, in _run_code exec(code, run_globals)
File "C:\Program Files\WinPython\WinPython 64bit 3.6.2.0Qt5\python-3.6.2.amd64\scripts\ptpython.exe\__main__.py", line 9, in <module>
File "C:\Program Files\WinPython\WinPython 64bit 3.6.2.0Qt5\python-3.6.2.amd64\lib\site-packages\ptpython\entry_points\run_ptpython.py", line 55, in run
  six.exec_(compile(open(a['<arg>'][0], "rb").read(), a['<arg>'][0], 'exec'))
File "C:\Temp\Load_files_DD.py", line 86, in <module>files = searching_all_files(path)
File "C:\Temp\Load_files_DD.py", line 17, in searching_all_files
shutil.copyfile(os.path.join(dirpath,os.path.basename(x)),os.path.join(temp,
os.path.basename(x)))
NameError: name 'shutil' is not defined
...