【发布时间】:2021-01-09 23:52:45
【问题描述】:
我正在使用 os.walk() 来获取某个目录中的所有文件;但是,该目录中有大量我不需要的文件。我知道我想阅读的文件的具体名称,因为它们每天都会更新,并且只有文件名更改的日期。
import pandas as pd
import os
from os import listdir, walk
from os.path import isfile, join
td_str = pd.to_datetime('today').strftime('%Y%m%d') # Returns '20200923'
path = 'C:\\Users\\myuser\\subdirectory\\' + td_str
for root, directories, files in os.walk(path, topdown=False):
for name in files:
print(os.path.join(root, name))
### The Output
# C:\Users\myuser\subdirectory\20200923\20200923_file_a.csv
# C:\Users\myuser\subdirectory\20200923\20200923_file_b.csv
# C:\Users\myuser\subdirectory\20200923\20200923_file_c.csv
# C:\Users\myuser\subdirectory\20200923\20200923_file_d.csv
我知道我想读取 file_b 和 file_c 并将它们放入各自的数据帧中。
df_file_b = pd.read_csv('C:\Users\myuser\subdirectory\20200923\20200923_file_b.csv')
df_file_c = pd.read_csv('C:\Users\myuser\subdirectory\20200923\20200923_file_c.csv')
如何仅使用 pandas 读取这些特定文件?我目前假设我可能需要做一些事情,比如在列表中包含所需的文件名并执行if 循环来检查 os.walk() 是否找到它,但是有没有更有效的方法来做到这一点?
非常感谢。
【问题讨论】:
标签: python pandas operating-system