【问题标题】:Sorting files using glob使用 glob 对文件进行排序
【发布时间】:2021-10-04 17:41:57
【问题描述】:

我正在尝试在 python 中使用 glob 读取一堆 csv 文件。我想按升序读取所有文件,然后将每个文件中的数据分配给不同的数组。

我现在的代码如下所示:

for idx, f in enumerate (glob.glob(os.path.join(gen_path, "*.csv"))):
    data[idx] = pd.read_csv(f, index_col=False)

任何人都可以帮助以排序方式阅读文件。

谢谢。

【问题讨论】:

    标签: python pandas csv glob


    【解决方案1】:

    glob 返回一个字符串列表。只需排序即可。

    for idx, f in enumerate(sorted(glob.glob(os.path.join(gen_path,"*.csv")))):
    ```
    

    【讨论】:

    • 我已经尝试过了,但不幸的是这并没有帮助。我仍然可以看到输出文件没有按照文件夹中的 csv 文件排序。
    • 那你做错了什么。排序不能工作。你的名字里有数字吗?请记住,10、100 和 1000 都排在 2 之前。也许您应该在问题中发布一些文件名。
    • 问题出在名称上,例如我的数据文件名称为“gen1-er1.csv”、“gen2-er2.csv”、“gen3-vp5.csv”等,直到 gen258...重命名这些文件后,问题得到解决。非常感谢@Tim Roberts
    • 附带说明,有一种方法可以使用嵌入数字的文件名进行排序。您基本上编写了一个转换,将名称更改为列表或元组('gen',1,'-er',1,'.csv'),并使用该键函数进行排序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多