当前位置: 首页 > news >正文

python实现C++简易自动压行

突发奇想,想要将自己的c++压行之后交上去。但是苦于手动压行效率太低,在网上搜索压行网站没有找到,突然发现压行不就是检查检查去个换行符吗。于是心血来潮,用python实现了一个简易压行程序。

首先,宏定义等带#的文件不能跟压行,会报错。其次是行注释要删除,不能这一行后面都被注释掉了。

因此,我用一个变量txt表示压行之后的内容,每次用line读取行字符串内容。将line字符串中//后面的内容舍去。

strip函数得到line剔除空格和换行符等。如果line里有#字符,就不进行换行。由于不换行需要考虑压行后的txt字符串中是否有换行符\n,如果已经有了,则不用再txt后面再加入\n,否则需要在txt字符串后添加换行符。由于后面的行也不能在该行后面,所以在line字符串后添加换行符。将line拼接到txt后面即可。

with open(file=r"lab.cpp", mode="r", encoding="utf-8") as fb:# 考虑第一行就是#等,txt初始化为 `\n`txt = "\n"while True:# 循环读入行line = fb.readline()# 如果是空,则结束if not line:break# 有 "//" ,舍去 "//" 后面的内容if line.find("//") != -1:line = line[: line.find("//")]# 将line剔除前后的空格和换行line = line.strip()# 如果该行有'#',该行需要单独一行if line.find("#") != -1:# 如果txt已经有换行,则不需要再添,否则需要添加换行if txt[-1] != '\n': txt += "\n"line += "\n"txt += line# 输出到 压行.cpp 文件内with open(file = r"压行.cpp", mode="w", encoding="utf-8") as f:print(txt, file=f)print("ok")

效果:

image-20231129021717548

http://www.lryc.cn/news/247106.html

相关文章:

  • 京东数据分析(京东大数据采集):2023年线上珍珠市场销售数据采集
  • 亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证
  • 现代C++之万能引用、完美转发、引用折叠
  • ELK日志收集系统-filbeat
  • Python小知识
  • 如何在Ubuntu系统上安装Redis
  • Vue2问题:如何全局使用less和sass变量?
  • Java 基础学习(四)操作数组、软件开发管理
  • git仓库如何撤销提交,恢复提交,重置版本命令
  • Java 基础学习(三)循环流程控制与数组
  • 别太担心,人类只是把一小部分理性和感性放到了AI里
  • 最新AIGC创作系统ChatGPT系统源码+DALL-E3文生图+图片上传对话识图/支持OpenAI-GPT全模型+国内AI全模型
  • 在centos7上源码安装nginx
  • Html网页threejs显示obj,ply三维图像实例
  • Windows平台下的oracle 11G-11.2.0.4补丁升级操作指南
  • MFC居中显示文字及其应用
  • 50-75GHz大功率六倍频源设计
  • Qt 软件调试(一) Log日志调试
  • docker network容器网络通信
  • CVE-2022-4886 ingress命令注入复现与分析
  • Oracle整体架构
  • webpack具体实现--未完
  • 【Git】修改提交信息(单次、批量)
  • Grafana Panel组件跳转、交互实现
  • 人工智能|机器学习——感知器算法原理与python实现
  • 【论文阅读笔记】Prompt-to-Prompt Image Editing with Cross-Attention Control
  • Echarts legend图例配置项 设置位置 显示隐藏
  • C#每天复习一个重要小知识day3:随机数的生成
  • Java后端使用XWPFDocument生成word文档,踩坑
  • asp.net core HttpContextAccessor类