【问题标题】:python remove file from one directory to anotherpython将文件从一个目录删除到另一个目录
【发布时间】:2021-01-22 23:47:37
【问题描述】:

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

我认为它的发生是因为目的地不存在,因为它正是我要移动的地方。那么如何在将文件移到那里之前使其存在?

注意:这是我的代码:

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')

【问题讨论】:

  • 尝试删除if条件,我认为它正在检查目标文件是否存在。
  • 我怀疑,如你所见,条件判断是否满足,所以不用担心
  • 我不清楚什么不存在,您是在询问源 PDF 在移动之前是否必须存在?

标签: python directory operating-system filesystems shutil


【解决方案1】:

如果'~/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 的文件路径操作方法,它们让生活变得更加轻松,并且在执行此类任务时将大大减少混乱。

其他资源:

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      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”文件夹。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-02
        • 1970-01-01
        • 2017-07-20
        • 2012-02-15
        • 1970-01-01
        • 1970-01-01
        • 2013-06-01
        相关资源
        最近更新 更多