如何利用表格单行数据生成目录路径并实现文件复制?
实现步骤与代码示例
核心逻辑是读取表格中的文件夹配对数据,拼接成完整路径后执行目标操作(比如复制),以下分两种常见表格格式给出具体方案:
情况1:表格为CSV格式(逗号分隔)
假设你的CSV文件内容如下:
父文件夹,子文件夹 folder x,folder A folder y,folder B
用Python内置csv模块读取并处理:
import csv import shutil # 替换为你实际的根目录,比如C:\Users\你的用户名\Documents root_path = r'C:\Users\你的用户名\目标根目录' # 替换为你的CSV文件实际路径 csv_file = r'C:\path\to\your\folder_pairs.csv' with open(csv_file, 'r', encoding='utf-8') as f: reader = csv.DictReader(f) for row in reader: parent_folder = row['父文件夹'] sub_folder = row['子文件夹'] # 拼接完整源路径 source_path = fr'{root_path}\{parent_folder}\{sub_folder}' # 替换为你要复制到的目标路径 dest_path = r'C:\Users\你的用户名\目标文件夹' # 执行复制操作 shutil.copy2(source_path, dest_path)
情况2:表格为Excel格式(.xlsx/.xls)
先安装依赖库:pip install pandas openpyxl,再用pandas读取处理:
import pandas as pd import shutil root_path = r'C:\Users\你的用户名\目标根目录' # 替换为你的Excel文件实际路径 excel_file = r'C:\path\to\your\folder_pairs.xlsx' # 读取Excel表格(假设数据在Sheet1,表头为“父文件夹”和“子文件夹”) df = pd.read_excel(excel_file, sheet_name='Sheet1') for _, row in df.iterrows(): parent_folder = row['父文件夹'] sub_folder = row['子文件夹'] source_path = fr'{root_path}\{parent_folder}\{sub_folder}' dest_path = r'C:\Users\你的用户名\目标文件夹' shutil.copy2(source_path, dest_path)
关键注意事项
- 路径需用**原始字符串(前缀r)**或双反斜杠,避免Python将
\f这类字符解析为转义符 - 确保根路径、表格文件路径真实存在,否则会触发文件不存在错误
- 若仅需生成路径列表而非执行复制,删除
shutil.copy2相关代码,将source_path存入列表或直接打印即可
内容的提问来源于stack exchange,提问作者silvadiogo
相关产品推荐
相关产品推荐

