使用shutil在python中移动文件
我知道有一些关于如何在python中移动文件的帖子,但我有点困惑。我正在开发一个名为test.txt的程序 文件路径如下:使用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
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是干什么的吗?我们为什么需要“/”还有一种方法可以在pythonos.path中搜索整个计算机中的特定文件。join
可以从多个组件(以及其他内容)创建完整的路径名。您可能想使用它,因为这样您就可以跨任何类型的操作系统指定路径名。“斜杠”是根目录(是的,它是一个实际的目录名)。如果您开始使用Python,请注意,join
函数是从os.path
模块导入的。因此,您可以从os.path import join
中删除行,然后在上面的脚本中使用os.path.join
而不是join
,但您最好在其他地方阅读有关在Python中导入模块的内容(这实际上是一个单独的问题)。使用Python搜索文件是一个单独的问题-搜索,以便找到答案。