gpt4 book ai didi

python - 确定变量是打开的文件指针还是字符串

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:09 25 4
gpt4 key购买 nike

我想编写一个函数来计算文件的 md5 哈希值,我可以为该函数提供一个指示完整文件路径的字符串或一个打开的文件指针。

现在,我的函数只接受一个字符串:

def getMD5Hash(fname):
""" Returns an md5 hash
"""
try:
with open(fname,'rb') as fo:
md5 = hashlib.md5()
chunk_sz = md5.block_size * 128
data = fo.read(chunk_sz)
while data:
md5.update(data)
data = fo.read(chunk_sz)
md5hash = base64.urlsafe_b64encode(md5.digest()).decode('UTF-8').rstrip('=\n')
except IOError:
md5hash = None

如何检测fname 是字符串还是打开的文件指针?

最佳答案

Python 有几种不同的类文件类型( fileStringIOio.TextIOWrapper 等),这使得问“这是一个文件吗?”难的。相反,问“这是一个字符串吗?”并假设不是的任何东西都必须是一个文件:

def getMD5Hash(fname):
if isinstance(fname, str):
# It's a string!
else:
# I guess it's a file, then.

关于python - 确定变量是打开的文件指针还是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24499609/

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