簡體   English   中英

從配置文件python中讀取列表

[英]Reading list from configuration file python

美好的一天,

tldr ; 配置讀取腳本返回單個字符而不是字符串。

我正在編寫一個程序,可以使用SCPI命令連接到各種儀器。 除此之外,每個樂器都必須以不同的方式初始化,並且應該添加新的樂器,因此我制作了一個配置文件,如下所示:

### Digital multimeters ###
[34405A]
init : ["*RST", "*CLS", "CONF:VOLT:DC 20, MAX"]

[34401A]
init : ["*RST", "*CLS", "CONF:VOLT:DC 20, MAX"]

### Power supplies ###
[E3634A]
init : ["*RST", "*CLS", "OUTP OFF", "APPLY:P25V", "OUTP ON"]

[E3640A]
init : ["*RST", "*CLS", "OUTP OFF", "APPLY:P25V", "OUTP ON"]

[E3631A]
init : ["*RST", "*CLS", "OUTP OFF", "APPLY:P25V", "OUTP ON"]

[61602]
init : ["*RST", "*CLS", "OUTP OFF", "OUTP:PROT:CLE", "OUTP:COUP AC", 
"VOLT:AC 230", "FREQ 50", "OUTP ON"]

此外,我嘗試讀取配置文件。

import configparser as cp

conf = cp.ConfigParser()
print(conf.read("devices.ini"))
print(conf.sections())

conn_dev = ["34405A", "61602"]


for devices in conf.sections():
    for (key, val) in conf.items(devices):
        print(devices + " : " + key + " : " + val)
        for commands in val:
            print(commands)

我期望的是命令列表,但它返回的是單個字符,甚至是引號。 小樣本

PPA5530 : init : ["*RST", "*CLS"]
[
"
*
R
S
T
"
,

"
*
C
L
S
"
]

它為什么返回單個字符而不是我定義的命令?

val是一個字符串。 遍歷字符串時,一次只能得到一個字符。

Python為什么要自動將字符串轉換為所需的字符串? 它不知道你想要什么。

使用ast.literal_eval轉換為list

>>> import ast
>>> val = '["*RST", "*CLS"]'
>>> val
'["*RST", "*CLS"]'

>>> values = ast.literal_eval(val)
>>> values
['*RST', '*CLS']

>>> for value in values:
...     print(value)
*RST
*CLS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM