gpt4 book ai didi

python - 使用列表循环遍历文件

转载 作者:行者123 更新时间:2023-12-01 01:17:19 24 4
gpt4 key购买 nike

我有一个带有伪目录(/usr/folder/)的文件夹,其中的文件如下所示:

target_07750_20181128.tsv.gz
target_07750_20181129.tsv.gz
target_07751_20181130.tsv.gz
target_07751_20181203.tsv.gz
target_07751_20181204.tsv.gz
target_27103_20181128.tsv.gz
target_27103_20181129.tsv.gz
target_27103_20181130.tsv.gz

我正在尝试将上述 tsv 文件加入到商店代码上的一个 xlsx 文件(可在上面的文件名中找到)。

我正在阅读 file.xlsx 并将其作为 pandas 数据框读取。我已从 file.xlsx 中提取了商店代码,因此我有以下内容:

stores = instore.store_code.astype(str).unique()

输出:

07750
07751
27103

所以我的最终目标是循环遍历商店中的每个商店并找到目录中对应的文件名。这是我到目前为止所拥有的,但我似乎无法获得正确的文件名来打印:

import os

for store in stores:
print(store)
if store in os.listdir('/usr/folder/'):
print(os.listdir('/usr/folder/'))

我期望看到的 store_code in loop = '07750' 的输出将是:

07750    
target_07750_20181128.tsv.gz
target_07750_20181129.tsv.gz

相反,我只看到返回的商店代码:

07750
07751
27103

我在这里做错了什么?

最佳答案

您的 if 语句失败的原因是它检查“07750”等是否是目录中的文件名之一,但事实并非如此。您想要是查看某个文件名中是否包含“07750”。

我会这样处理:

from collections import defaultdict
store_files = defaultdict(list)

for filename in os.listdir('/usr/folder/'):
store_number = <some string magic to extract the store number; you figure it out>
store_files[store_number].append(filename)

现在 store_files 将是一个字典,其中包含每个商店编号的文件名列表。

关于python - 使用列表循环遍历文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54205528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com