【问题标题】:Python: Is there a way to filter through c++ files?Python:有没有办法过滤 c++ 文件?
【发布时间】:2020-07-20 23:05:51
【问题描述】:

我目前正在编写一个 python 脚本,该脚本在公司代码库中进行搜索,以生成大量 .cpp 和 .hppfiles 列表。其中一些文件仅包含 cmets 和预处理器指令。有没有办法识别和过滤掉这些文件?谢谢

【问题讨论】:

标签: python c++ python-3.x search


【解决方案1】:

你必须阅读文件的内容

f = open("path/to/file")
contents = f.read()
f.close()

希望这些文件包含某种标记,使它们易于查找 - 标题中的某些内容。

if "indicative marker" in contents:
    # Label file

由于它们只是 cmets 和预处理器指令,您可能还需要逐行迭代,检查每个开头的“//”或“#”。

for line in f:
    if "//" not in line or "#" not in line:
        return False

当然,要做到这一点,您需要获取每个目录的内容列表。

import os
os.listdir("path/to/dir")

假设这些文件是嵌套的,您需要在此处导航结果。如果文件的命名方式易于识别,则实际上可以跳过读取文件内容的步骤。

【讨论】:

  • 谢谢你,这正是我想要的!
  • @eric 我正在做类似的事情,如果也不需要命名空间声明,你可以做类似的事情: if "//" in line 或 "#" in line: return false elif行中的“命名空间”和不在行中的“使用”:返回 false 。抱歉,这没有按照我的意图格式化
  • @jstrau21 是的,我会声明一个包含您要搜索的所有内容的数组,然后使用“for line in file: for each in array_of_undesirables: return False if each in line”。将其视为注释有点困难,但在每个 : 之后添加一个新行并确保第二个 for 循环嵌套在第一个中。
猜你喜欢
  • 1970-01-01
  • 2020-04-09
  • 2021-03-08
  • 2021-11-09
  • 2010-09-08
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
相关资源
最近更新 更多