Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:使用shutil复制文件_Python_Copy_Os.walk_Shutil - Fatal编程技术网

Python:使用shutil复制文件

Python:使用shutil复制文件,python,copy,os.walk,shutil,Python,Copy,Os.walk,Shutil,我正在尝试使用python将我的places.sqlite信息复制到我的桌面。它存储在users\username\AppData\Roaming\Mozilla\Firefox\Profiles\rh425234.default\places.sqlite中 但是,我们需要的是将os.walk从\Profiles\转到\places.sqlite,并将其复制到我的桌面上。这就是我想到的: dirs = '\\users\\username\\AppData\\Roaming\\Mozilla\

我正在尝试使用python将我的places.sqlite信息复制到我的桌面。它存储在users\username\AppData\Roaming\Mozilla\Firefox\Profiles\rh425234.default\places.sqlite中

但是,我们需要的是将os.walk从\Profiles\转到\places.sqlite,并将其复制到我的桌面上。这就是我想到的:

dirs = '\\users\\username\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\'
cop_dir = '\\users\\Desktop\\

for r,d,f in os.walk(dirs):
    if 'places.sqlite' in f:
        shutil.copy2('places.sqlite', cop_dir)
        break
我认为shutil.copy2需要一个复制源和复制目标的位置。问题是,如果不将\rh425234.default\添加到“复制自”目录,我不知道如何执行此操作

我试过这样的方法:

a = os.getcwd() + str(os.listdir(os.getcwd()))
将其放入shutil.copy2(一个,cop_dir)中,但这不起作用。有什么想法吗?

使用os.path.join()获取目录:

for r,d,f in os.walk(dirs):
    if 'places.sqlite' in f:
        shutil.copy2(os.path.join(r, 'places.sqlite'), cop_dir)
        break
dirs = '\\users\\username\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\'
cop_dir = '\\users\\Desktop\\'

for r,d,f in os.walk(dirs):
    if 'places.sqlite' in f:
        shutil.copy2(os.path.join(r, 'places.sqlite'), cop_dir)
        break

您是否尝试过
shutil.copy('c:/users/username/AppData/Roaming/Mozilla/Firefox/Profiles/places.sqlite','c:/users/username/desktop/')
?在/Profiles和/places.sqlite之间,有一个文件夹被分配了一个随机名称,因此无法工作。我尝试这样做时假设我无法知道该文件夹的名称。您可以使用
glob
模块并使用通配符:
/foo/*/bar
在(os.path.join(r,'places.sqlite')中“r”到底做什么@user2256199 r只是用于第一个os.walk返回值的变量,它保存文件(f变量)所在的当前目录。os.path.jion将它们粘在一起。