我目前正在阅读一个文件并导入其中的数据,代码如下:
# Read data from file.
data = np.loadtxt(join(mypath, 'file.data'), unpack=True)
其中变量mypath
是已知的。问题是文件file.data
将随时间变化,其名称如下:
file_3453453.data
file_12324.data
file_987667.data
...
因此,我需要一种方法来告诉代码打开路径中名称类似file*.data
的文件,假设路径中始终只有 * 一个 * 文件使用该名称。
4条答案
按热度按时间jgzswidk1#
您可以使用
glob
模块,它允许对文件名进行模式匹配,并且完全按照您的要求进行操作例如,我有一个目录,里面有名为google.xml、google.json和google.csv的文件。
我可以这样使用glob:
注意,
glob
使用fnmatch
模块,但是它有一个更简单的接口,并且它匹配路径而不仅仅是文件名。你可以搜索相对路径,而不必使用
os.path.join
。在上面的例子中,如果我切换到父目录并尝试匹配文件名,它会返回相对路径:lbsnaicq2#
还可以查看
fnmatch
:h5qlskok3#
一个简单的解决方案是使用python模块“os”和“re”:
icomxhvb4#
试试看
它会返回一个包含所有文件
file*.data
的列表,如果有多个文件,你可以遍历它们,如果只有一个文件,就把[0]
放在列表解析的末尾。