如何检查 python 中是否存在带有 * 的文件?

How do I check if a file exists with * in python?

我正在尝试检查文件是否存在以便我可以读取它。问题是我不知道文件上的编号是多少。一次只应存在一个文件,但名称会在我写入文件时更新(在代码的另一部分),所以我不知道执行这段代码时文件的确切数量。

N=0
if os.path.exists('*somefile.txt'): #if the file exists, read it
    print("found Nsomefile.txt")
    filename = '*somefile.txt'
    something=np.loadtxt(filename)
    N = int(filename.split('s')[0]) #save the N from the filename
else: #otherise, preallocate memory for something
    something = np.empty((x,y))  
print(N,"of some thing")

在我的目录中我可以看到那里的文件('32somefile.txt')但代码仍然打印 0 of some thing

您应该在这里使用 glob 而不是 os 函数。

Glob 还支持 * 字符,因此它应该适合您的用例。

您可以使用 pathlib 中的 glob()。

https://docs.python.org/3.5/library/pathlib.html#pathlib.Path.glob

谢谢大家!我忘了全球。 (我在代码的另一部分使用它 (facepalm))。现在看起来像:

import numpy as np
from glob import glob
N=0
if glob('*somefile.txt'): #if the file exists, read it
    print("found Nsomefile.txt")
    filename = glob('*somefile.txt')[0]
    something=np.loadtxt(filename)
    N = int(filename.split('s')[0]) #save the N from the filename
else: #otherise, preallocate memory for something
    something = np.empty((x,y))  
print(N,"of some thing")

输出

found Nsomefile.txt
32 of some thing