python读取文件夹内的所有文件,文件创建,文件保存

本文介绍了一个使用Python进行双层文件夹遍历的例子,包括如何读取文件夹内的所有子文件夹及文件,并对图片文件进行处理保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考简易版,单层文件夹的遍历访问

rootdir = 'F:\data'
list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
for i in range(0,len(list)):
    path = os.path.join(rootdir,list[i])
    if os.path.isfile(path):
        #你想对文件的操作

下面是双层文件夹的访问:

import os
import cv2

data_path = '/home/xiqi/PycharmProjects/FBMS/Dataset/Trainingset/'
video_list = os.listdir(data_path)

save_path = './SaliencyMap/'
if not os.path.exists(save_path):  # 文件夹不存在,则创建
    os.mkdir(save_path)
for i in range(0, len(video_list)):
    print(i)
    video_path = os.path.join(data_path, video_list[i])  # 视频文件夹
    if os.path.isdir(video_path):
        img_list = os.listdir(video_path)
        save_video_path = os.path.join(save_path, video_list[i])
        if not os.path.exists(save_video_path):
            os.mkdir(save_video_path)

        for j in range(0, len(img_list)):
            print(j)
            img_path = os.path.join(video_path, img_list[j])  # 图片文件
            if os.path.isfile(img_path):
                # salmap = processImage(net, img_path) # 操作

                save_img_path = os.path.join(save_video_path, img_list[j])
                cv2.imwrite(save_img_path, salmap)

 

<think>好的,我需要帮助用户找到一个Python示例程序,该程序可以读取文件夹中的文件将它们保存到新文件中。首先,我要确认用户的具体需求。用户提到“读取文件夹内的文件保存到新文件”,这可能意味着将多个文件的内容合到一个新文件,或者将每个文件单独保存到新位置。根据常见的用例,可能是指前者,即将所有文件内容合。 接下来,我需要考虑如何用Python实现这个功能。主要步骤应包括:遍历指定文件夹中的所有文件读取每个文件的内容,然后将这些内容入到一个新文件中。我需要确保处理不同文件编码的情况,但通常文本文件使用UTF-8编码。此外,需要注意异常处理,例如文件无法读取时的错误处理。 参考用户提供的引用内容,特别是引用[2]中提到的文件同步和压缩处理,可能用户还需要处理文件路径的操作,比如使用os模块来遍历文件夹,以及正确处理文件路径。同时,引用[3]中的文件示例使用了cv2.imread和imwrite,但这里用户可能处理的是文本文件,所以应使用open函数进行读。 接下来,我应该编一个示例代码,使用os.listdir遍历文件夹,过滤出文件而非子目录,然后逐个读取入到输出文件。需要确保在Windows和Linux下路径的正确处理,使用os.path.join来拼接路径。同时,添加异常处理以增强鲁棒性。 用户可能还需要了解如何指定输入和输出路径,所以示例中应包括变量定义,如input_folder和output_file。此外,可能需要处理不同文件格式,但示例中可以保持简单,仅处理文本文件。 最后,根据系统级指令,需要生成相关问题。相关问题可能涉及如何扩展功能,比如处理文件夹、大文件、特定文件类型,或者添加压缩功能,如引用[2]中的zip处理。还可能涉及性能优化,如引用[3]中的使用第三方库提高效率。 总结步骤: 1. 导入必要的模块(os)。 2. 定义输入文件夹和输出文件路径。 3. 遍历文件夹中的每个文件。 4. 检查是否为文件(避免子目录)。 5. 读取每个文件内容追加到输出文件。 6. 添加异常处理。 7. 提供扩展建议和相关问题。</think>以下是一个Python示例程序,用于读取文件夹内所有文件内容保存到新文件中: ```python import os def merge_files(input_folder, output_file): try: with open(output_file, 'w', encoding='utf-8') as outfile: for filename in os.listdir(input_folder): filepath = os.path.join(input_folder, filename) if os.path.isfile(filepath): try: with open(filepath, 'r', encoding='utf-8') as infile: outfile.write(f"=== {filename} ===\n") outfile.write(infile.read()) outfile.write("\n\n") except UnicodeDecodeError: print(f"跳过二进制文件: {filename}") except Exception as e: print(f"读取{filename}时出错: {str(e)}") print(f"成功合文件到 {output_file}") except Exception as e: print(f"操作失败: {str(e)}") # 使用示例 input_folder = "./documents" # 输入文件夹路径 output_file = "combined_content.txt" # 输出文件路径 merge_files(input_folder, output_file) ``` ### 功能说明: 1. **文件遍历**:使用`os.listdir()`获取文件夹内所有条目 2. **路径处理**:通过`os.path.join()`构建完整文件路径 3. **文件过滤**:`os.path.isfile()`确保只处理文件(跳过子目录) 4. **内容合**: - 自动添加文件头标识`=== 文件名 ===` - 支持文本文件编码检测(默认UTF-8) - 自动跳过二进制文件 5. **错误处理**: - 捕获文件读取错误 - 处理编码异常 - 输出详细错误信息 ### 扩展建议: 1. **添加压缩功能**:可结合引用[2]的zip处理技术,先压缩文件保存 ```python import zipfile # 创建压缩包示例 with zipfile.ZipFile('archive.zip', 'w') as zipf: for file in os.listdir(folder): zipf.write(os.path.join(folder, file)) ``` 2. **大文件处理**:使用分块读取避免内存溢出 ```python # 分块读取文件 chunk_size = 1024*1024 # 1MB while True: chunk = infile.read(chunk_size) if not chunk: break outfile.write(chunk) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值