如何在Python中指定文件夹批量读取文件且无需完整路径?
批量读取指定文件夹下的CSV文件(无需完整路径)
实现步骤:
- 切换到目标工作目录
用os模块把Python当前工作目录切换到你要提取数据的文件夹,之后所有文件操作默认基于这个目录,不用再写完整路径:
import os import pandas as pd # 替换成你的目标文件夹路径,比如 "./数据文件夹" 或者本地绝对路径 target_dir = "C:/Users/X/Desktop/Y/Z" os.chdir(target_dir)
- 获取文件夹内所有CSV文件
推荐用glob模块快速匹配所有.csv后缀的文件,也可以用os.listdir配合后缀过滤:
- 用glob的方式:
import glob csv_files = glob.glob("*.csv") # 直接获取当前目录下所有csv文件名
- 用os.listdir的方式:
csv_files = [file for file in os.listdir() if file.endswith(".csv")]
- 批量读取并处理文件
循环遍历所有CSV文件,沿用你原来的逻辑读取指定列,可选择将结果合并或单独处理:
df_collection = [] for filename in csv_files: # 和你原来的代码一致,直接用文件名读取 df = pd.read_csv(filename, usecols=[1]) df_collection.append(df) # 若需要合并所有数据到一个DataFrame combined_df = pd.concat(df_collection, ignore_index=True)
补充说明
- 切换工作目录后,后续的文件读写都会默认使用该目录,彻底避免重复输入完整路径
- 如果你不想切换工作目录,也可以直接用
glob.glob("目标文件夹路径/*.csv")获取带路径的文件名,读取时直接传入即可,但这样每个文件路径会包含文件夹信息,不符合你"无需指定完整路径"的需求,所以优先推荐切换工作目录的方式
内容的提问来源于stack exchange,提问作者mw00847
相关产品推荐
相关产品推荐

