isfeifei 2023-11-29 15:34 采纳率: 33.3%
浏览 3
已结题

关于#python#的问题:为什么此段代码执行result文件夹里没有文件呢


import os
import shutil
import zipfile
from datetime import datetime

def extract_all_zips(source_folder, temp_extract_folder):
    for root, dirs, files in os.walk(source_folder):
        for file in files:
            if file.endswith('.zip'):
                zip_path = os.path.join(root, file)
                extract_zip(zip_path, temp_extract_folder)

def extract_zip(zip_file, extract_to):
    with zipfile.ZipFile(zip_file, 'r') as zip_ref:
        zip_ref.extractall(extract_to)

def find_and_copy_files(source_folder, destination_folder, file_name_patterns, user_input_date):
    file_names_to_find = [pattern.replace('YYYYMMDD', user_input_date) for pattern in file_name_patterns]

    temp_extract_folder = '/path/to/temp_extract'
    extract_all_zips(source_folder, temp_extract_folder)

    extracted_files = []

    for root, dirs, files in os.walk(temp_extract_folder):
        for file in files:
            for pattern in file_names_to_find:
                if pattern.lower() in file.lower():
                    source_path = os.path.join(root, file)
                    destination_path = os.path.join(destination_folder, file)
                    shutil.copy2(source_path, destination_path)
                    print(f"File '{file}' matched pattern '{pattern}'")
                    extracted_files.append(file)

    print("Extracted files:")
    print(extracted_files)

    shutil.rmtree(temp_extract_folder)  # Remove the temporary extract folder
    print('提取完成!')

# 用法示例:
source_folder_A = r'C:\Users\LF\Desktop\test'
destination_folder = r'C:\Users\LF\Desktop\result'
file_name_patterns = ['yyyymmdd组合持仓表.txt', 'yyyymmdd_优惠组合持仓明细表.txt']

# 获取用户输入的日期
user_input_date = input("请输入日期,格式为YYYYMMDD:")

find_and_copy_files(source_folder_A, destination_folder, file_name_patterns, user_input_date)

为什么此段代码执行result文件夹里没有文件呢?

  • 写回答

2条回答 默认 最新

  • 虫鸣@蝶舞 2023-11-29 18:12
    关注

    你的代码好像没什么问题,具体情况还要你自己调试,请检查print(f"File '{file}' matched pattern '{pattern}'")是否有输出信息,如没有请检查temp_extract_folder = '/path/to/temp_extract'这个目录是否有解压文件,如有解压的文件,但是没有输出,可能是找不到你输入格式的文件,可以用window浏览器打开temp_extract_folder文件夹查找看看是否存在文件,如能找到文件,可以添加print来同时输出file_names_to_find的值和你历遍temp_extract_fold的文件名,看看有什么不匹配的地方

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月8日
  • 已采纳回答 11月30日
  • 创建了问题 11月29日