news 2026/1/9 18:37:30

python读取按行txt文件,并且将读取内容转成文件名,移动文件位置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python读取按行txt文件,并且将读取内容转成文件名,移动文件位置

你想要用 Python 实现读取一个按行存储文件名的 TXT 文件,将每行内容作为目标文件名,然后把这些文件从原位置移动到指定的新位置,我会为你提供一份完整、健壮的实现代码,并详细解释关键步骤。

实现思路

  1. 读取 TXT 文件:逐行读取 TXT 文件中的内容,清理每行的换行符、空格等无效字符,过滤空行;
  2. 路径处理:定义文件的源目录(文件原本所在位置)和目标目录(要移动到的位置),自动创建目标目录(避免目录不存在报错);
  3. 文件移动:遍历读取到的每个文件名,拼接完整的源路径和目标路径,使用shutil库安全移动文件,并处理文件不存在、权限不足等异常;
  4. 异常处理:针对常见错误(如文件不存在、权限问题、路径错误)给出明确提示,保证程序健壮性。

完整 Python 代码示例

python

import os import shutil def move_files_from_txt(txt_file_path, source_dir, target_dir): """ 从TXT文件读取文件名,将对应文件从源目录移动到目标目录 :param txt_file_path: 存储文件名的TXT文件路径(如:./file_list.txt) :param source_dir: 源文件所在目录(如:./source_files/) :param target_dir: 目标目录(如:./target_files/) """ # 1. 检查TXT文件是否存在 if not os.path.exists(txt_file_path): print(f"错误:TXT文件 {txt_file_path} 不存在!") return # 2. 自动创建目标目录(如果不存在) os.makedirs(target_dir, exist_ok=True) # 3. 读取TXT文件中的文件名(逐行) try: with open(txt_file_path, 'r', encoding='utf-8') as f: # 读取所有行,清理空行和换行符 file_names = [line.strip() for line in f.readlines() if line.strip()] except Exception as e: print(f"读取TXT文件失败:{str(e)}") return # 4. 遍历文件名,移动对应文件 success_count = 0 # 成功移动的文件数 fail_count = 0 # 移动失败的文件数 fail_files = [] # 记录移动失败的文件 for file_name in file_names: # 拼接源文件完整路径和目标文件完整路径 source_file = os.path.join(source_dir, file_name) target_file = os.path.join(target_dir, file_name) # 检查源文件是否存在 if not os.path.exists(source_file): print(f"跳过:文件 {source_file} 不存在!") fail_count += 1 fail_files.append(file_name) continue # 避免目标文件已存在(可选:覆盖/跳过,这里选择跳过) if os.path.exists(target_file): print(f"跳过:目标目录已存在文件 {file_name},不覆盖!") fail_count += 1 fail_files.append(file_name) continue # 移动文件 try: shutil.move(source_file, target_file) print(f"成功:{file_name} 已移动到 {target_dir}") success_count += 1 except PermissionError: print(f"失败:无权限移动 {file_name}(文件可能被占用/权限不足)") fail_count += 1 fail_files.append(file_name) except Exception as e: print(f"失败:移动 {file_name} 出错 - {str(e)}") fail_count += 1 fail_files.append(file_name) # 5. 输出移动结果统计 print("\n===== 移动完成 =====") print(f"总计读取文件名:{len(file_names)} 个") print(f"成功移动:{success_count} 个") print(f"移动失败:{fail_count} 个") if fail_files: print(f"失败文件列表:{fail_files}") # ------------------- 调用示例 ------------------- if __name__ == "__main__": # 请根据你的实际情况修改以下参数 TXT_FILE = "./file_list.txt" # 存储文件名的TXT文件路径 SOURCE_DIR = "./original_files/" # 源文件所在目录 TARGET_DIR = "./moved_files/" # 目标目录(会自动创建) # 调用函数执行文件移动 move_files_from_txt(TXT_FILE, SOURCE_DIR, TARGET_DIR)

关键说明

  1. TXT 文件格式要求

    • TXT 文件每行仅写一个文件名(包含扩展名),例如:

      plaintext

      商品1.jpg 文档2.pdf 视频3.mp4
    • 代码会自动过滤空行和行首 / 行尾的空格、换行符,无需手动清理。
  2. 路径配置注意事项

    • TXT_FILE:填写 TXT 文件的完整路径(如D:/list/file_names.txt)或相对路径(如./file_list.txt);
    • SOURCE_DIR/TARGET_DIR:路径结尾建议加/(Windows 系统加\),例如D:/source/./target/
    • Windows 系统路径可使用\\(转义)或原始字符串(如r"D:\source\file.txt")。
  3. 异常处理说明

    • 处理了 “TXT 文件不存在”“源文件不存在”“目标文件已存在”“权限不足” 等常见错误;
    • 目标文件已存在时默认跳过,若需要覆盖,可删除if os.path.exists(target_file):相关代码块。
  4. 依赖说明

    • 代码使用 Python 内置库osshutil,无需额外安装第三方库,直接运行即可。

总结

  1. 核心逻辑是读取 TXT→清理文件名→拼接路径→移动文件,关键要做好路径处理和异常捕获;
  2. os.makedirs(target_dir, exist_ok=True)可自动创建目标目录,避免目录不存在的报错;
  3. shutil.move()是 Python 移动文件的标准方法,支持跨目录、跨磁盘(部分系统)移动,比手动复制删除更安全。

如果需要调整逻辑(比如覆盖目标文件、移动时重命名、读取带路径的文件名),可以告诉我,我会帮你修改代码。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/4 11:59:03

服务器上配置pytorch

一、前置准备:检查服务器基础环境首先通过 SSH 连接服务器,执行以下命令检查关键信息,确保安装适配:1. 检查系统与 Python 版本bash# 查看系统版本(确认是Linux,如CentOS/Ubuntu) cat /etc/os-r…

作者头像 李华
网站建设 2026/1/4 11:56:37

5分钟掌握AIGC:深入解析大模型原理、应用与开发实践!

对 AIGC 的详细说明 一、 AIGC 是什么?核心定义 AIGC 的全称是 Artificial Intelligence Generated Content,中文译为 “人工智能生成内容”。 核心定义:它指的是利用人工智能技术,通过已有数据的学习和模式识别,自…

作者头像 李华
网站建设 2026/1/4 11:56:14

内网穿透实现公网访问HeyGem:frp/ngrok配置教程

内网穿透实现公网访问HeyGem:frp/ngrok配置实战 在AI应用快速落地的今天,越来越多团队选择将数字人、语音合成、图像生成等系统部署在本地服务器上——既保障数据隐私,又能充分利用高性能GPU资源。但问题也随之而来:你的HeyGem视…

作者头像 李华
网站建设 2026/1/8 21:58:12

【C#跨平台权限系统设计】:从零构建高安全权限控制体系

第一章:C#跨平台权限系统设计概述在现代软件开发中,构建一个安全、灵活且可扩展的权限系统是保障应用数据完整性和用户隐私的核心环节。随着 .NET 平台对跨平台支持的不断深化,C# 应用已广泛部署于 Windows、Linux 和 macOS 等多种环境中&…

作者头像 李华
网站建设 2026/1/4 11:55:22

音频清晰度影响大吗?HeyGem对人声音频质量的要求解析

音频清晰度影响大吗?HeyGem对人声音频质量的要求解析 在数字人视频生成技术迅速普及的今天,越来越多的企业开始用AI驱动的虚拟形象替代传统的人工录制。无论是线上课程讲解、智能客服应答,还是品牌宣传短片,用户期待的不再只是“能…

作者头像 李华