python从一个目录中删除文件到另一个目录 旁注:其他资源:

问题描述

我试图使用shutil.move文件文件夹移动到本地计算机上的另一个文件。但是我一直收到这个错误

enter image description here

我认为之所以会这样,是因为目的地不存在,因为它正是我要移动的目的地。那么如何在将文件移动到那里之前使它存在?

注意:这是我的代码

import os
import shutil

path = '.\PDF_data\PDF'
record = pd.read_csv('~/Desktop/sec_results1.csv')
for file in tqdm(record['ID Number']):
    pdf = path + '/' + file + '.pdf'
    if os.path.exists(pdf):
        shutil.move(pdf,'~/Desktop/PDF_extracted' + '/' + file + '.pdf')

解决方法

如果'~/Desktop/PDF_extracted'不是已经存在的目录,则必须先创建目录,然后再将文件移动到该目录。您可以使用os.mkdirpathlib.Path.mkdir

以下是您可以通过任一方法完成此操作的方法:

os.mkdir

fpath = '~/Desktop/PDF_extracted'
if not os.path.exists(fpath):
    os.mkdir(fpath)

pathlib.Path.mkdir

from pathlib import Path 

fpath = '~/Desktop/PDF_extracted'
path_obj = Path(fpath)
if not path_obj.exists():
    path_obj.mkdir()

旁注:

使用文件路径可能很棘手,因此我绝对建议您研究一下os尤其是pathlib的文件路径操作方法,它们使工作变得更加轻松,并且在执行任务时会大大减少混乱这样。

其他资源:

,
import os
import shutil
path = '.'
print(os.path.abspath(path))
os.mkdir("new_folder")
old_folder = "test"
shutil.move("~/Desktop/test/file.txt","new_folder")
  1. 您位于由“。”指示的当前目录中。句号,如果您想知道自己的绝对路径目录。
  2. 您通过“ os.mkdir”代码制作“ new_folder”
  3. 假定当前目录“〜/ Desktop”中有“ test”文件夹,其中包含要移动的“ file.txt”文件。
  4. 'shutil.move'将帮助您将'file.txt'文件从'〜/ Desktop / test /'文件夹移至'〜/ Desktop / new_folder'文件夹。
,

我是在Windows 10上完成的,因此无法识别~\Desktop。我需要将其更改为Microsoft类型,例如./../Desktop