[英]Check if GZIP file exists in Python
我想在运行Python的同时检查Linux计算机上是否存在.gz文件。 如果我对文本文件执行此操作,则以下代码有效:
import os.path
os.path.isfile('bob.asc')
但是,如果bob.asc为gzip格式(bob.asc.gz),Python将无法识别它。 理想情况下,我想使用os.path.isfile或非常简洁的东西(无需编写新函数)。 是否可以通过Python或通过更改系统配置来使文件可识别?
不幸的是,我无法更改数据格式或文件名,因为它们是公司批量给我的。
当然不是; 它们是完全不同的文件。 您需要单独测试:
os.path.isfile('bob.asc.gz')
如果当前工作目录中存在该确切文件,则将返回True
。
尽管解决方法可能是:
from os import listdir, getcwd
from os.path import splitext, basename
any(splitext(basename(f))[0] == 'bob.asc' for f in listdir(getcwd()))
您需要测试每个文件。 例如 :
if any(map(os.path.isfile, ['bob.asc', 'bob.asc.gz'])):
print 'yay'
鬼混了一下之后,我能完成工作的最简洁的方法是
subprocess.call(['ls','bob.asc.gz']) == 0
如果文件存在于目录中,则返回True。 这是我期望的行为
os.path.isfile('bob.asc.gz')
但由于某些原因,当传递给os.path.isfile时,Python不会将扩展名为.gz的文件作为文件接受。
我觉得我的解决方案不是很优雅,但是很简洁。 如果有人有一个更优雅的解决方案,我很乐意看到它。 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.