使用shutil在python中移动文件

使用shutil在python中移动文件,python,shutil,Python,Shutil,我知道有一些关于如何在python中移动文件的帖子,但我有点困惑。我正在开发一个名为test.txt的程序 文件路径如下:C:\Users\user\Desktop\Project1\Project1 我想将其移动到:C:\Users\user\Documents\ProjectMoved 我尝试了下面的不同变体 src="C:\\Users\\user\\Desktop\\Project1\\Project1\\test.txt" dst="C:\\Users\\user\\Documents

我知道有一些关于如何在python中移动文件的帖子,但我有点困惑。我正在开发一个名为test.txt的程序

文件路径如下:
C:\Users\user\Desktop\Project1\Project1

我想将其移动到:
C:\Users\user\Documents\ProjectMoved

我尝试了下面的不同变体

src="C:\\Users\\user\\Desktop\\Project1\\Project1\\test.txt"
dst="C:\\Users\\user\\Documents\\ProjectMoved"
shutil.move(src, dst)
我一直收到错误,目录中没有这样的文件


我想知道是否有人能帮我找到移动文件的正确方法。

可能值得检查文件是否存在,然后尝试使用
os.path.join指定路径:

import shutil
import os
from os.path import join

src = join('/', 'Users', 'username', 'Desktop', 'a.pdf')
dst = join('/', 'Users', 'username', 'Documents', 'a.pdf')

shutil.move(src, dst)
您可以首先验证
src
是否实际存在:

os.path.exists(src)
>>> True

如果您尝试将多个.txt文件从文件夹A移动到文件夹B,也可以通过这种方式解决此问题。此原则可以应用于您的问题,因为您正在移动.txt文件

import os
import shutil
os.chdir('C:\\') 

dir_src = ("C:\\Folder A\\")
dir_dst = ("C:\\Folder B\\")

for filename in os.listdir(dir_src):
    if filename.endswith('.txt'):
        shutil.move( dir_src + filename, dir_dst)
    print(filename)

C:\Users\user\Documents\ProjectMoved
是否存在?您可能必须创建它。dst没有正确引用-前导太多“s.@Rawing是的,您是否试图将test.txt文件移动到名为ProjectMoved的目录或文件中?当我使用src=join时,它确实存在。谢谢,它工作了。你能给我解释一下join是干什么的吗?我们为什么需要“/”还有一种方法可以在python
os.path中搜索整个计算机中的特定文件。join
可以从多个组件(以及其他内容)创建完整的路径名。您可能想使用它,因为这样您就可以跨任何类型的操作系统指定路径名。“斜杠”是根目录(是的,它是一个实际的目录名)。如果您开始使用Python,请注意,
join
函数是从
os.path
模块导入的。因此,您可以从os.path import join
中删除行
,然后在上面的脚本中使用
os.path.join
而不是
join
,但您最好在其他地方阅读有关在Python中导入模块的内容(这实际上是一个单独的问题)。使用Python搜索文件是一个单独的问题-搜索,以便找到答案。