【Python 用起来】Python脚本生成包含标准的#ifndef保护宏的头文件

做一个python脚本,可以用python + 文件名的形式进行调用
 

以下是一个可以直接通过命令行调用的 Python 脚本:

方法一:独立脚本文件(推荐)

create_header.py

#!/usr/bin/env python3
"""
创建C语言头文件的脚本
用法: python create_header.py <文件名>
"""

import sys
import os

def create_header_file(filename):
    """
    生成一个C语言头文件,包含标准的#ifndef保护宏
    """
    # 确保文件名以.h结尾
    if not filename.endswith('.h'):
        filename += '.h'
    
    # 生成保护宏(移除路径只保留文件名)
    base_name = os.path.basename(filename)
    guard_macro = f"_{base_name.upper().replace('.', '_')}_"
    
    content = f"""#ifndef {guard_macro}
#define {guard_macro}





#endif /*{guard_macro}*/
"""
    
    with open(filename, 'w', encoding='utf-8') as f:
        f.write(content)
    
    print(f"✓ 已生成头文件: {filename}")

def main():
    if len(sys.argv) != 2:
        print("用法: python create_header.py <文件名>")
        print("示例: python create_header.py user_config.h")
        sys.exit(1)
    
    filename = sys.argv[1]
    create_header_file(filename)

if __name__ == "__main__":
    main()

方法二:单行命令版本

create_header_oneliner.py

#!/usr/bin/env python3
import sys, os

if len(sys.argv) != 2:
    print("用法: python create_header_oneliner.py <文件名>")
    sys.exit(1)

filename = sys.argv[1]
if not filename.endswith('.h'): filename += '.h'
guard = f"_{os.path.basename(filename).upper().replace('.', '_')}_"

with open(filename, 'w') as f:
    f.write(f"#ifndef {guard}\n#define {guard}\n\n\n\n\n\n#endif /*{guard}*/\n")

print(f"生成成功: {filename}")

使用方法:

# 使用方法一
python create_header.py user_config.h

# 或者(自动添加.h后缀)
python create_header.py user_config

# 使用方法二
python create_header_oneliner.py my_header.h

方法三:制作成可执行文件(Linux/Mac)

# 给脚本添加执行权限
chmod +x create_header.py

# 然后可以直接执行
./create_header.py user_config.h

测试示例:

# 创建测试文件
python create_header.py user_config.h

# 查看生成的内容
cat user_config.h

输出结果:

#ifndef _USER_CONFIG_H_
#define _USER_CONFIG_H_





#endif /*_USER_CONFIG_H_*/

这个脚本可以接受文件名作为参数,自动处理文件后缀和保护宏的生成,使用起来非常方便。

posted @ 2025-09-27 22:49  FBshark  阅读(14)  评论(0)    收藏  举报