python通过文件头判断文件格式

# 通过文件头判断文件格式
# 如果有后缀直接识别为后缀,主要针对无后缀文件
# 实现识别文件
import os

def get_file_type(file_path):
    with open(file_path, 'rb') as f:
        file_head = f.read(4)
        if file_head[:3] == b'\xff\xd8\xff':
            return 'JPEG'
        elif file_head[:4] == b'\x89PNG':
            return 'PNG'
        elif file_head[:3] == b'ID3':
            return 'MP3'
        elif file_head[:4] == b'%PDF':
            return 'PDF'
        else:
            return 'unknown'


if __name__ =="__main__":
    file_path = '/test/'
    names = os.listdir(file_path)
    for name in names:
        path = file_path + name
        houzhui = os.path.splitext(path)[-1].lower()
        if houzhui:
            print(houzhui)
        else:
            file_type = get_file_type(path)
            print(file_type)
            # os.rename(path, path+'.'+file_type)

# 通过文件头判断文件格式
# 如果有后缀直接识别为后缀,主要针对无后缀文件
# 实现识别文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中,可以使用一些库和方法来检验文件的格式。以下是一种常见的方法: 1. 使用文件扩展名检验:可以通过检查文件的扩展名来确定文件的格式。Python中的os模块提供了一个方法来获取文件的扩展名,可以使用该方法来检验文件的格式。例如,如果文件扩展名是".txt",则可以判断文件是文本文件。 示例代码: ```python import os def check_file_format(file_path): file_extension = os.path.splitext(file_path)[1] if file_extension == ".txt": print("该文件是文本文件") elif file_extension == ".csv": print("该文件是CSV文件") else: print("未知文件格式") # 调用函数进行检验 check_file_format("example.txt") ``` 2. 使用magic模块检验:magic模块是一个Python库,可以根据文件内容来判断文件的格式。它使用了魔术数字(magic number)和文件信息来进行判断。安装magic模块后,可以使用其提供的方法来检验文件的格式。 示例代码: ```python import magic def check_file_format(file_path): file_type = magic.from_file(file_path) if "text" in file_type: print("该文件是文本文件") elif "CSV" in file_type: print("该文件是CSV文件") else: print("未知文件格式") # 调用函数进行检验 check_file_format("example.txt") ``` 这些方法只是其中的两种常见的检验文件格式的方法,具体的检验方式还取决于文件的特征和需求。你可以根据具体的文件格式要求来选择合适的方法进行检验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值