【发布时间】:2015-05-27 14:33:24
【问题描述】:
我正在使用我编写的 python 脚本从ls 获取一些标准输入,并将数据加载到该路径描述的文件中。它看起来像这样:
ls -d /path/to/files/* | python read_files.py
这些文件根据其中的数据具有特定的名称结构,但都存储在同一目录中。我要使用的文件具有名称结构A<fileID>_###.txt(其中### 总是一些3 位数字)。我只需将上面的内容稍微更改为ls -d /path/to/files/A*,就可以仅获取以A开头的文件。但是,有些文件有一个名为 B 的后缀标志(因此文件看起来像 A<fileID>_###B.txt),我不想包含这些。
所以,我的问题是,有没有办法排除那些以...B.txt 结尾的文件(或只包括以数字结尾的文件)?我想到了一些大意的东西:
ls -d /path/to/file/R*%d.txt
只包含以数字结尾且后跟文件扩展名的文件,但找不到任何此类文档。
【问题讨论】:
-
如果您的 python 脚本接受文件列表作为参数,而不是通过标准输入传递它们,这将更有用。这将使您能够使用使用扩展 glob 的解决方案。
-
你必须使用
ls吗?使用find,您可以使用-regex选项以及模式的逻辑组合。