选择正确的csv fi

2024-04-25 19:12:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手。 我希望python从文件夹中选择正确的csv文件。 我想比较一下最真实的文件(t)和昨天的文件(t-1)的CD价差

因此,代码必须选择今天的文件和昨天的文件。 “昨天的”文件可以是昨天的或前天的

下面的代码标识了文件,但创建了昨天的数据帧,其中包含代码中的最后一个日期

today = dt.date.today()
d1 = today.strftime("%Y%m%d")
print(d1)
t2 = today - timedelta(days = 1) 
t3 = today - timedelta(days = 2) 
t4 = today - timedelta(days = 3) 
t2 = t2.strftime("%Y%m%d")
t3 = t3.strftime("%Y%m%d")
t4 = t4.strftime("%Y%m%d")
print(t2)
print(t3)
print(t4)

if (os.path.exists(path'+d1+'.csv')):
    dataframe2 = pd.read_csv(path'+d1+'.csv')
if (os.path.exists(path-'+t2+'.csv')):
    dataframe2 = pd.read_csv(path'+t2+'.csv')
if (os.path.exists(path'+t3+'.csv')):
    dataframe2 = pd.read_csv(path'+t3+'.csv')
if (os.path.exists(path-'+t4+'.csv')):
    dataframe2 = pd.read_csv(path'+t4+'.csv')

如何告诉python,如果第一个文件退出,构建一个数据帧并停止检查以下日期


Tags: 文件csvpathtodayifosexistsd1
1条回答
网友
1楼 · 发布于 2024-04-25 19:12:00

一种更灵活的方法是使用循环来减少日期,直到找到文件,然后停止:

t = dt.date.today()
d = today.strftime("%Y%m%d")
max_iter = 100
found = False
while max_iter > 0:
    print(d)
    if os.path.exists(path+d+'.csv'):
        found = True
        break
    t = t - timedelta(days = 1)
    d = t.strftime("%Y%m%d")
    max_iter = max_iter - 1

if found:
    dataframe = pd.read_csv(path+d+'.csv')
else:
    print("No valid file found.")

我还添加了一个计数器max_iter,它限制循环运行的次数,这样即使找不到文件,循环也会结束

相关问题 更多 >