Python - C语言语法解析:pycparser模块
2022/1/12 22:04:58
本文主要是介绍Python - C语言语法解析:pycparser模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python - C语言语法解析:pycparser模块
- 0 前言
- 1 pycparser模块(三方库)
- 1.1 方法列表
- 1.2 示例
0 前言
>>返回Python系列文章目录<<
pycparser是python的一个用于解析C语言的第三方库,用于获取C语言的语法树
1 pycparser模块(三方库)
argparse模块是Python的第三方库,需要安装
pip install pycparser
pycparser模块导入方式
# parser_file 用于处理c语言文件 from pycparser import parse_file # c语言有错误时,会引出此错误 from pycparser.plyparser import ParseError # c_ast.py 文件下包含了抽象语法树的节点类 from pycparser.c_ast import *
1.1 方法列表
① 使用以下方法创建parser类:
ast = parse_file(filename, use_cpp = False) # fake_libc_include文件夹放在处理的c语言目录下 ast = parse_file(filename, use_cpp = True, cpp_path=r'C:\MinGW\bin\gcc.exe', cpp_args=r'-I./fake_libc_include')
parse_file 的参数 | 说明 |
---|---|
use_cpp | 是否使用本地c语言编译器预处理代码,去掉其中的#命令(头文件、宏定义、pragma) |
cpp_path | 本地c语言编译器路径 |
cpp_args=r'-I./fake_libc_include' | fake_libc_include文件夹路径,use_cpp=True 时使用,需要从官网下载 |
② 使用以下方法给parser增加一个参数:
parser.add_argument()
add_argument 的参数 | 说明 |
---|---|
default= | 没有设置值情况下的默认参数 |
required= | 如果设置了required=True ,则在实际运行的时候不设置该参数将报错 |
type= | 默认的参数类型是str类型,如果你的程序需要一个整数或者布尔型参数,你需要设置type=int 或type=bool |
choices=[] | 参数值只能从几个选项里面选择 |
help='' | 指定参数的说明信息,在命令行用-h起效 |
dest= | argparse默认的变量名是–或-后面的字符串,但是你也可以通过dest=xxx来设置参数的变量名,然后在代码中用args.xxx来获取参数的值 |
nargs= | 设置参数在使用可以提供的个数N 参数的绝对个数(例如:3)? 0或1个参数* 0或所有参数+ 所有,并且至少一个参数 |
③ 使用以下方法获得参数解析结果:
args = parser.parse_args()
1.2 示例
import argparse def get_args(): parser = argparse.ArgumentParser(description='argparse') parser.add_argument('--cd', '-c', help='working direction', required=True) parser.add_argument('--debug', '-d', choices=['N', 'Y'], default='N', required=False, help='debug mode, print all') args = parser.parse_args() return args if __name__ == '__main__': args = get_args() if(args.debug == 'Y') # code
在命令行通过以下方式调用:
python test.py -c C:/ -d Y
或者生成exe后调用
test -c C:/ -d Y
这篇关于Python - C语言语法解析:pycparser模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python