我认为标题解释了这一切。我需要检查其名称中包含单词data
的文件是否存在。我试过类似os.path.exists(/d/prog/*data.txt)
的东西,但这不起作用。
答案 0 :(得分:1)
您无法使用os.path.exists
执行此操作 - 它需要完整的路径名。如果不知道确切的文件名,你应该首先在文件系统上找到这个文件(当你这样做时,它证明文件存在)。
一个选项是列出目录(-ies),并手动查找文件:
>>> import os
>>> file_list = os.listdir('/etc')
>>> [fn for fn in file_list if 'deny' in fn]
['hostapd.deny', 'at.deny', 'cron.deny', 'hosts.deny']
另一个更灵活的选择是使用glob.glob
,允许使用*
,?
和[...]
等通配符:
>>> import glob
>>> glob.glob('/etc/*deny*')
['/etc/hostapd.deny', '/etc/at.deny', '/etc/cron.deny', '/etc/hosts.deny']
答案 1 :(得分:1)
请尝试glob
:
from glob import glob
if glob('/d/prog/*data.txt'):
# blah blah
答案 2 :(得分:1)
如果你在Windows上:
>>> import glob
>>> glob.glob('D:\\test\\*data*')
['D:\\test\\data.1028.txt', 'D:\\test\\data2.1041.txt']