对照列表实现复制文件功能但是如何进一步实现生成 execl 报告

import os
import shutil
path = 'C:/Users/Administrator/Desktop/ 列表.txt'
root = 'C:/Users/Administrator/Desktop/ 文件夹 1'
root1 = 'C:/Users/Administrator/Desktop/ 文件夹 2'
with open (path) as obj:
words = obj.readlines() for word in words:
for dirpath,dirnames,filenames in os.walk(root):
for filename in filenames:
if word.strip() == filename[0:-5]:
shutil.copy(root + "/" + filename,root1)
count = 0
for dirpath,dirnames,filepath in os.walk(root1): for f in filepath:
count += 1
print ("复制成功数据:" + str (count) + "条")
os.system ("pause") 
'''实现的功能是从列表.txt里面对照文件夹1里面的内容如果有同名文件则复制到文件夹2,然后生成报告多少条。假如你要扫描很大一堆材料,每个材料都进行命名,组后复制完发现有些文件没有复制或者文件复制错误,那么这个就可以用了,最后要实现的功能实现生成execl表格,里面第一列显示txt列表哪些名字的数据没有找到有思路的可以完善下,高手莫喷,刚开始学'''
讨论数量: 4

你看下,是不是要这样子 file

# -*- coding:utf8 -*-
import os
import shutil
import pandas as pd

def copy_file(from_file, to_file):
    try:
        shutil.copyfile(from_file, to_file)
        return True
    except:
        return False

def start():
    file1_names = os.listdir('文件夹1')  # 获取文件夹1所有文件名称
    with open('列表.txt', mode='r') as f:
        file_list = [file.strip() for file in f.readlines()]
    successful_num = 0
    fail_num = 0
    not_exist_file = []  # 存储不存在的文件名称
    for file in file_list:
        if file in file1_names:
            is_copy_successful = copy_file(from_file='文件夹1/{}'.format(file), to_file='文件夹2/{}'.format(file))  # 复制文件
            if is_copy_successful:
                print('复制成功: {}'.format(file))
                successful_num += 1
            else:
                print('复制失败: {}'.format(file))
                fail_num += 1
        else:
            print('文件不存在: {}'.format(file))
            not_exist_file.append(file)

    print('总计:复制成功{}个,失败{}个,不存在{}个'.format(successful_num, fail_num, len(not_exist_file)))
    pd.DataFrame(data=not_exist_file).to_excel('不存在文件.xlsx', header=None, index=None)


if __name__ == '__main__':
    start()
5年前 评论

win7下可以打开C:/Users/Administrator/Desktop/ 列表.txt,但是在win10路径也是写的对着就是出现找不到列表路径。不知道是哪里的问题?

5年前 评论

你看下win10的路径,是不是C:/Users/Administrator/Desktop/ 列表.txt,是不是win10的用户名不是Administrator

5年前 评论

路径改好了,但是 Traceback (most recent call last): File "C:\Users\dvs909\Desktop\对照.py", line 6, in with open (path) as obj: # 打开列表文本 FileNotFoundError: [Errno 2] No such file or directory: 'C://Users//dvs909//Desktop//列表.txt'

不知道哪里出问题了,百度很多页没有找到问题所在,电脑又不支持win7系统,有没有高手帮忙远程看看

5年前 评论
Bgods 5年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!