nginx配置分析器

nginxparser_eb的Python项目详细描述


使用pyparsing的nginx配置解析器。

可以使用load或^{tt2}解析nginx配置文件$ 方法:

>>>fromnginxparser_ebimportload>>>load(open("/etc/nginx/sites-enabled/foo.conf"))[['server'],[['listen','80'],['server_name','foo.com'],['root','/home/ubuntu/sites/foo/']]]]

与其他序列化模块一样,还可以导出配置 使用

>>>fromnginxparser_ebimportload>>>load(open("/etc/nginx/sites-enabled/foo.conf"))[['server'],[['listen','80'],['server_name','foo.com'],['root','/home/ubuntu/sites/foo/']]]]

与其他序列化模块一样,还可以导出配置 使用dumpdumps方法。

>>>fromnginxparser_ebimportdumps>>>dumps([['server'],[['listen','80'],['server_name','foo.com'],['root','/home/ubuntu/sites/foo/']]])'server {listen80;server_namefoo.com;root/home/ubuntu/sites/foo/;}'

安装

nginx解析器现在可以通过pip:

pip install nginxparser_eb

故障排除

可能会发生这样的异常:

ParseException: Expected {Group:({W:(ABCD...) [{Suppress:(<SPC><TAB><CR><LF>) !W:({};)}] Suppress:(";")}) | Forward: ...} (at char 0), (line:1, col:1)

这可能是由于导入修改pyparsing globals的cmd2包所致。特别是,以下代码导致 问题在于:

pyparsing.ParserElement.setDefaultWhitespaceChars(' \t')

在这个设置中,pyparser解析器在新行之后停止解析。

因此,导入pyparsing将修改空白字符设置回

pyparsing.ParserElement.setDefaultWhitespaceChars(" \n\t\r")

学分

基于https://github.com/fatiherikli/nginxparser和certbot nginx解析器。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ajax请求不允许POST请求   java引用Android应用程序中其他模块的通用模块   JavaSpringBootWebFluxFlatmap是链接http调用的正确方法吗?   java如何在底部工作表中设置折叠工具栏?   任务“:compileJava”的java执行失败。“>无效的源版本:1.7   java Rabbit MQ不刷新ACK?   JavaWebSphere7:METAINF/config/ibmaxis2。无法正确加载xml Axis2全局配置文件   在Java中找出字符串是否包含数组中的值   java Liquibase通过Springboot执行postgres方法   java在Eclipse中安装Maven而不使用插件   Swing应用程序中的java SMTP错误   web应用程序InvalidKeyException:Java中使用RSA密钥的密钥格式无效   java显示JFrame作为JButton单击的结果?   java如何保留Apache Camel Exchange的属性,如果消息是从RabbitMQ生成和使用的   java使用流提取哈希映射列表中的所有对象   Android应用程序中的java单词检查器