鱼C论坛

 找回密码
 立即注册
查看: 1427|回复: 2

[已解决]关于os的文件复制

[复制链接]
发表于 2021-1-11 11:27:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import os
import os.path
import shutil

#获取文件名
def getfilelist(dir,filelist):
        newdir = dir
        if os.path.isfile(dir):
                filelist.append(dir)
        elif os.path.isdir(dir):
                for s in os.listdir(dir):
                        newdir = os.path.join(dir,s)
                        getfilelist(newdir,filelist)
        return filelist

#复制文件到指定文件夹
def copyfiles(filename,destination):
        file_path,file_name = os.path.split(filename)
        if not os.path.exists(destination):
                os.makedirs(destination)
        shutil.copy(filename, destination + file_name)
        print('copy%s -->%s' %(filename, destination + file_name))

filedir = 'D:\\桌面\\学习\\'
list = getfilelist(filedir,[])
dst = 'D:\\桌面\\学习\\重要\\'
n = 0
for i in list:
        b = i.find('重要')
        if b > 0:
                copyfiles(i,dst)
                n += 1
print(n)

将桌面下的学习文件里面文件名带重要的文件复制过去,可是输出的n是41,打印的复制信息也是41个,可为什么文件夹里只复制过来了34个文件,我对比了前后文件夹,少了7个文件不知道到哪里去了。这是为什么啊。
最佳答案
2021-1-11 11:37:14
本帖最后由 qq1151985918 于 2021-1-11 11:46 编辑

你给 31/32行 copyfiles(i,dst) 和 n += 1之间加一个print(i)不就知道缺的那个去哪里了么,盲猜,缺的应该是相同的文件名的文件,例如  \重要\a.py   和  \重要\文件夹\a.py
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-11 11:37:14 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qq1151985918 于 2021-1-11 11:46 编辑

你给 31/32行 copyfiles(i,dst) 和 n += 1之间加一个print(i)不就知道缺的那个去哪里了么,盲猜,缺的应该是相同的文件名的文件,例如  \重要\a.py   和  \重要\文件夹\a.py
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-11 12:12:11 | 显示全部楼层
qq1151985918 发表于 2021-1-11 11:37
你给 31/32行 copyfiles(i,dst) 和 n += 1之间加一个print(i)不就知道缺的那个去哪里了么,盲猜,缺的应该 ...

太妙了,少的确实是不同文件夹下相同名字的文件名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 21:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表