【问题标题】:Can I load a python code in python and parse it as normal code lines?我可以在 python 中加载 python 代码并将其解析为普通代码行吗?
【发布时间】:2019-01-02 08:47:46
【问题描述】:

我希望能够将一些用于配置的定义与我想使用它们的脚本分开。 例如:

## Config ##
antPatHeader = {

    # Name
    "name": "Antenna_Pattern_Tables",

    # Version
    "major_version": 0,
    "minor_version": 0,

}

有没有一种简单的方式,比如打开和读取文件之类的

f = open(configFile, "r")  
f.read()  
f.close()

然后在程序中解析它们。

将代码从执行脚本中分离出来的最佳方法是什么?

【问题讨论】:

  • 你为什么不能直接import config.py
  • 恐怕就是这么简单。它说变量没有定义。

标签: python parsing configuration header constants


【解决方案1】:

如果您希望将配置放在不同的文件中并将其作为参数加载到脚本中,最简单的方法是将其存储为标记语言文件,例如

您的配置已经(几乎)是 json 格式,因此您可以执行以下操作:

config.json:

{
    "name": "Antenna_Pattern_Tables",
    "major_version": 0,
    "minor_version": 0,
}

然后在python中:

import json

with open('config.json') as f:
    data = json.load(f)

print(data["name"]) #"Antenna_Pattern_Tables"
print(data["major_version"]) #0

如果你只想使用另一个文件中的 python 变量,你可以这样做:

p2.py:

test = 5

p1.py

import p2

print(p2.test) #5

【讨论】:

  • 这是个好主意。我在这里使用了字典。我还定义了一个列表,其中包含字典中键的值,我有一个简单的变量等等...我认为 C 中有类似的东西可以使用头文件。
  • 查看更新,它应该完成你想做的一切
  • 有没有办法一次调用整个代码sn-p?
  • 您可以尝试将其他python函数中的所有内容包装在一个函数中,然后调用该函数(p2.wholeFileFunction())
猜你喜欢
  • 2021-08-16
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
  • 2014-11-29
  • 2016-09-10
相关资源
最近更新 更多