python文件被移动/复制后如何删除?
我希望将源目录中的zip复制/移动到dst位置。zip被复制到dist路径。但是,如何删除源目录文件?我尝试了move选项,它删除了源目录文件,但是如果存在具有现有名称的zip,move命令无法移动zip。copy方法工作并简单地覆盖它,但在source_dir中留下一个zip。下面是我的代码,它复制成功,但zip文件并没有从源目录中删除。我做错了什么python文件被移动/复制后如何删除?,python,shutil,Python,Shutil,我希望将源目录中的zip复制/移动到dst位置。zip被复制到dist路径。但是,如何删除源目录文件?我尝试了move选项,它删除了源目录文件,但是如果存在具有现有名称的zip,move命令无法移动zip。copy方法工作并简单地覆盖它,但在source_dir中留下一个zip。下面是我的代码,它复制成功,但zip文件并没有从源目录中删除。我做错了什么 def Movezips(self, email): time.sleep(2) print("s
def Movezips(self, email):
time.sleep(2)
print("starting moving")
source_dir = 'C:/Download'+email+'/'
dst = 'E:/BackUpZip/'+email
Path(dst).mkdir(parents=True, exist_ok=True)
dst=dst+'/'
files = glob.iglob(os.path.join(source_dir, "*.zip"))
for file in files:
if os.path.isfile(file):
shutil.copy(file, dst)
for file in files:
if os.path.isfile(file):
shutil.rmtree(file)
您可以使用os而不是shutil来删除文件夹和文件 要删除文件,可以使用
os.remove(“文件名”)
要删除文件夹,可以使用os.rmdir(“foldername”)
或者你可以试着用shutil
'shutil.move(文件、dst、复制_function=copy)'
移动的默认
copy\u功能是copy2
,但正如您所说的copy
对您有效,这可能也有效我设法解决了我遇到的问题。最后只是删除了额外的代码
files = glob.iglob(os.path.join(source_dir, "*.zip"))
for file in files:
if os.path.isfile(file):
shutil.copy(file, dst)
os.remove(file)
“但是,如果存在具有现有名称的zip,move命令无法移动zip。”哈?对不起,我的意思是shutil.move(文件,dst)可以将zip从源移动到dst,而无需在源文件夹中保留副本。但如果dst中已经有同名的zip,则会失败。只是一个一般性建议,尝试使用pathlib.Path
,您将大量混合os
,但请坚持其中一个。在任何情况下,在windows上,如果文件已经存在,则必须删除该文件,然后才能尝试将其移动到该名称。您可以使用os.rename
和os.remove
或使用target=Path(target);target.unlink();source.move(target)
其中source
是一些路径
对象您可能应该使用更现代的路径库
而不是笨重的操作系统
模块。