我已经通过这里的path.exists()和path.isdir()问题进行了阅读,但是到目前为止还没有找到,请检查目录中是否存在特定的文件类型...也许我没有搜索到正确的这个术语.
基本上,我想轮询一组文件夹,看看是否有txt文件...如果他们在那里,我会想要运行一串pexpect命令(每个命令/密码不同)将*.txt放入到远程服务器位置.我已经把我的put和get pexpect脚本工作了.
我尝试使用这样的通配符,但当然没有这样的运气.
>>> print(os.path.exists("/mnt/path/to/shared/folder/*.txt"))
False
Run Code Online (Sandbox Code Playgroud)
而不是有15个cron作业,每隔5分钟盲目放*.txt,我想只运行一个检查所有文件夹位置的脚本.如果txt文件存在= TRUE(然后做Pexpect的工作)如果为假,去下一个文件夹路径,并检查是否存在= txt文件真(然后做Pexpect的工作)ECT ....
glob似乎是票.我测试了这个:
import glob
if next(glob.iglob("/path/to/files/*.txt"), None):
print "there are txt files" # there are text files
else:
print "there are no text files"
Run Code Online (Sandbox Code Playgroud)
$ python check.py
有txt文件
你想用glob.
import glob
if glob.glob("/mnt/path/to/shared/folder/*.txt"):
# there are text files
else:
# No text files
Run Code Online (Sandbox Code Playgroud)
Glob将返回与通配符可访问路径匹配的文件列表.如果没有文件,它将返回一个空列表.这真的只是os.listdir和fnmatch.filter在一起.
如果内存是个问题,请glob.iglob在评论中使用200OK建议:
import glob
if next(glob.iglob("/mnt/path/to/shared/folder/*.txt"), None):
# there are text files
else:
# No text files
Run Code Online (Sandbox Code Playgroud)
iglob 构建迭代器而不是列表,这大大节省了内存.
| 归档时间: |
|
| 查看次数: |
1615 次 |
| 最近记录: |