繁体   English   中英

检查Python中是否存在GZIP文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM