我想将从文件中提取的行添加到节中,该行的格式不是option = value,我使用此程序:
import configparser
f = open('inventory_file', 'r')
config = configparser.ConfigParser()
config.add_section('windows')
for line in f:
if line[4] == '0':
config.set('windows', line, 'None')
with open('example.cfg', 'w') as configfile:
config.write(configfile)
库存文件:
W00VL9959061
W01V09908960
W01V09907745
W01V09907746
W01V09908317
W01V09907748
W00VL9968055
我在example.cfg中得到了这个结果:
[windows]
w01v09908960
= None
w01v09907745
= None
w01v09907746
= None
w01v09908317
= None
w01v09907748
= None
我想要这样的东西:
[windows]
w01v09908960
w01v09907745
w01v09907746
w01v09908317
w01v09907748
任何想法,请问我如何修改脚本以得到预期的结果
INI文件具有参数值对,因此您要查找的不是INI文件。
在这种情况下,您可以手动进行:
with open('inventory_file') as inv, open('example.cfg', 'w') as cfg:
print('[windows]', file=cfg)
for line in inv:
if line[4] == '0':
print(line, file=cfg, end='')
example.cfg
中的输出:
[windows]
W01V09908960
W01V09907745
W01V09907746
W01V09908317
W01V09907748
自Python 3.2开始,您可以将allow_no_value
传递给ConfigParser
构造函数(读取this section of the manual),以允许没有值的键。然后,您可以使用config.set(section,key)
获得所需的内容:
import configparser
f = open('inventory_file', 'r')
config = configparser.ConfigParser(allow_no_value=True)
config.add_section('windows')
for line in f:
if line[4] == '0':
config.set('windows', line)
with open('example.cfg', 'w') as configfile:
config.write(configfile)
尽管生成的文件在键之间有空白行:
[windows]
w01v09908960
w01v09907745
w01v09907746
w01v09908317
w01v09907748