gpt4 book ai didi

python - .csv和.csv.gz文件统一打开

转载 作者:太空宇宙 更新时间:2023-11-04 05:42:32 37 4
gpt4 key购买 nike

在 Python 2.7 中,我想打开一个文件并对其进行一些操作。问题是我事先不知道它是否具有 .csv.csv.gz 扩展名。如果我知道它是 .csv,我会这样做

with open(filename, "r") as f_in:
do something

如果我知道它是 .csv.gz,我可以说

import gzip

with gzip.open(filename, "r") as f_in:
do something

我很好奇在弄清楚文件扩展名后是否有避免重复的方法:

def find_ext(filename):
return filename.split(".")[-1]

ext = find_ext(filename)

if ext == "csv":
with open(filename, "r") as f_in:
do something
else if ext == "gz":
import gzip
with gzip.open(filename, "r") as f_in:
do something

最佳答案

我不会费心查看文件扩展名:文件被重命名或使用非标准变体。

相反,打开原始文件并检查标题。如果它以两个 32 位0x00088b1f0 开头,则它是一个 gzip 文件。

import struct

f = open(filename, 'rb')
v = f.read(8)
v1 = struct.unpack('I', v)[0]
v2 = struct.unpack('I', v)[1]
if v1 == 0x00088b1f and v2 == 0:
# it is gzip

关于python - .csv和.csv.gz文件统一打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33378051/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com