尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Python脚本生成包含标准的#ifndef保护宏的头文件

Python脚本生成包含标准的#ifndef保护宏的头文件
📅 发布时间:2026/6/20 18:41:11
做一个python脚本,可以用python + 文件名的形式进行调用
 
 
 
 

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

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

create_header.py

python
 
 
#!/usr/bin/env python3
"""
创建C语言头文件的脚本
用法: python create_header.py <文件名>
"""import sys
import osdef 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

python
 
 
#!/usr/bin/env python3
import sys, osif 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}")

使用方法:

bash
 
 
# 使用方法一
python create_header.py user_config.h# 或者(自动添加.h后缀)
python create_header.py user_config# 使用方法二
python create_header_oneliner.py my_header.h

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

bash
 
 
# 给脚本添加执行权限
chmod +x create_header.py# 然后可以直接执行
./create_header.py user_config.h

测试示例:

bash
 
 
# 创建测试文件
python create_header.py user_config.h# 查看生成的内容
cat user_config.h

输出结果:

c
 
 
#ifndef _USER_CONFIG_H_
#define _USER_CONFIG_H_#endif /*_USER_CONFIG_H_*/

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

相关新闻

  • sg.帮我写一个类似于vb6窗体设计的PySimpleGUI布局设计助手
  • IP新定义下的商业新范式:基于定制开发开源AI智能名片S2B2C商城小应用的IP价值变现研究
  • mysql的单表多大要考虑分库分表

最新新闻

  • 2026年知名的江苏DM542型电机驱动器/无刷电机驱动器/江苏BLD300型电机驱动器/江苏无刷电机驱动器定制加工厂家推荐 - 行业平台推荐
  • 后端开发新趋势:探索前沿技术栈的融合应用
  • 2026新余漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • 基于分层智能体架构的AI模型自动化构建系统设计与实践
  • 2026新乡漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • 2026年靠谱的杀菌机饮料设备/梁山杀菌机饮料设备/包装机饮料设备深度厂家推荐 - 品牌宣传支持者

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号