ConfigParser读取文件,怎样把值[string]类型转为list,

Define_ling 2014-07-01 02:41:24
#代码读取文件
servers = [];
config = ConfigParser.ConfigParser()
config.readfp(open('services.ini'))
servers = config.get("server",'testServers')
print(servers)
print('******')
for i in servers:
print(i)
# print 'login sucess:%s' % (i[0])
# print 'cwd %s' %(i[4])


输出结果:
[
['10.30.152.23','21','**','**','/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.176.197','21','**','**','/home/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.184.238','21','**','**','/opt/bea/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.164.30','21','**','**','/home/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.154.92','21','**','**','/home/JBOSS/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.194.9','21','**','**','/opt/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.158.14','21','**','**','/home/jboss/jboss-4.0.5_TEST/server/default/deploy/']
]
******
[


[
'
1
0
.
3
0
.
********

为什么不是把servers当list来处理,我想通过i[4]正确获得/jboss/jboss-4.0.5_TEST/server/default/deploy/

...全文
902 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
The_Third_Wave 2014-07-01
  • 打赏
  • 举报
回复
引用 12 楼 xmnathan 的回复:
[quote=引用 11 楼 u013171165 的回复:] [quote=引用 10 楼 xmnathan 的回复:] 文本方式读取的配置 肯定都是字符串 需要根据使用需求 对应 int(str) #int eval(str) #list dict tuple
求demo文档,我一直把eval当计算器用!这个确实没用过,试了下有空格,报错,就去写函数了。。。[/quote] 这个哪要什么文档 自己敲敲代码试试就可以了

>>> strDict = '''{'key1':'value1','key2':3}'''
>>> Dict = eval(strDict)
>>> Dict['key1']
'value1'
>>> Dict['key2']
3
[/quote] 我查了demo,里面没说有这种用法,所以问下你在哪看到过。
  • 打赏
  • 举报
回复
引用 11 楼 u013171165 的回复:
[quote=引用 10 楼 xmnathan 的回复:] 文本方式读取的配置 肯定都是字符串 需要根据使用需求 对应 int(str) #int eval(str) #list dict tuple
求demo文档,我一直把eval当计算器用!这个确实没用过,试了下有空格,报错,就去写函数了。。。[/quote] 这个哪要什么文档 自己敲敲代码试试就可以了

>>> strDict = '''{'key1':'value1','key2':3}'''
>>> Dict = eval(strDict)
>>> Dict['key1']
'value1'
>>> Dict['key2']
3
The_Third_Wave 2014-07-01
  • 打赏
  • 举报
回复
引用 10 楼 xmnathan 的回复:
文本方式读取的配置 肯定都是字符串 需要根据使用需求 对应 int(str) #int eval(str) #list dict tuple
求demo文档,我一直把eval当计算器用!这个确实没用过,试了下有空格,报错,就去写函数了。。。
  • 打赏
  • 举报
回复
文本方式读取的配置 肯定都是字符串 需要根据使用需求 对应 int(str) #int eval(str) #list dict tuple
The_Third_Wave 2014-07-01
  • 打赏
  • 举报
回复
引用 8 楼 define_ling 的回复:
引用 6 楼 xmnathan 的回复:
serversList = eval(servers)
我复制过去有空格。。。eval没成功,还自己写了个函数,我去!
Define_ling 2014-07-01
  • 打赏
  • 举报
回复
引用 6 楼 xmnathan 的回复:
serversList = eval(servers)
Define_ling 2014-07-01
  • 打赏
  • 举报
回复
引用 5 楼 define_ling 的回复:
谢谢
  • 打赏
  • 举报
回复 1
serversList = eval(servers)
Define_ling 2014-07-01
  • 打赏
  • 举报
回复
The_Third_Wave 2014-07-01
  • 打赏
  • 举报
回复
引用 3 楼 define_ling 的回复:
[quote=引用 2 楼 u013171165 的回复:]
#    print 'login sucess:%s' % (i[0])
#    print 'cwd %s' %(i[4])
这两句有事python2.7的语法了,还请楼主说清楚需求啊!
在程序里面直接给servers赋值, for i in servers: print(i[4]) 能够直接打出"'/jboss/jboss-4.0.5_TEST/server/default/deploy/'" 但是我从文件里面读取出来 servers= config.get("server",'testServers') for i in servers: print(i[4]) 这样是报错的,从文本里面读取出来的时候servers好像不是当作list处理的,[/quote] 你先
type(servers)
看下具体类型,我看你输出结果就是list嵌套啊,或者你发张图加代码,大家一起看看。
Define_ling 2014-07-01
  • 打赏
  • 举报
回复
引用 2 楼 u013171165 的回复:
#    print 'login sucess:%s' % (i[0])
#    print 'cwd %s' %(i[4])
这两句有事python2.7的语法了,还请楼主说清楚需求啊!
在程序里面直接给servers赋值, for i in servers: print(i[4]) 能够直接打出"'/jboss/jboss-4.0.5_TEST/server/default/deploy/'" 但是我从文件里面读取出来 servers= config.get("server",'testServers') for i in servers: print(i[4]) 这样是报错的,从文本里面读取出来的时候servers好像不是当作list处理的,
The_Third_Wave 2014-07-01
  • 打赏
  • 举报
回复
#    print 'login sucess:%s' % (i[0])
#    print 'cwd %s' %(i[4])
这两句有事python2.7的语法了,还请楼主说清楚需求啊!
The_Third_Wave 2014-07-01
  • 打赏
  • 举报
回复
>>> servers = [
['10.30.152.23','21','**','**','/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.176.197','21','**','**','/home/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.184.238','21','**','**','/opt/bea/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.164.30','21','**','**','/home/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.154.92','21','**','**','/home/JBOSS/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.194.9','21','**','**','/opt/jboss/jboss-4.0.5_TEST/server/default/deploy/']
,['10.30.158.14','21','**','**','/home/jboss/jboss-4.0.5_TEST/server/default/deploy/']
]>>> for i in servers:
        print(i[4])

        
/jboss/jboss-4.0.5_TEST/server/default/deploy/
/home/jboss/jboss-4.0.5_TEST/server/default/deploy/
/opt/bea/jboss/jboss-4.0.5_TEST/server/default/deploy/
/home/jboss/jboss-4.0.5_TEST/server/default/deploy/
/home/JBOSS/jboss-4.0.5_TEST/server/default/deploy/
/opt/jboss/jboss-4.0.5_TEST/server/default/deploy/
/home/jboss/jboss-4.0.5_TEST/server/default/deploy/
>>> 
不是很懂楼主的问题,本身就是list嵌套结构,list里面包含list。如果直接打印需求的 那就是:
>>> servers[0][4]
'/jboss/jboss-4.0.5_TEST/server/default/deploy/'
>>> 
代码下载地址: https://pan.quark.cn/s/8236006bf1f9 Word精灵插件:一款用于增强Microsoft Word功能的辅助软件,能够将多种复杂功能转化为插件形式,并在软件状态栏中进行展示,涵盖诸如批注管理、表格处理、内容替换、文档拆分、数学运算、字符提取、批量重命名等多项实用工具。在工作环境中应用该插件能够显著降低工作强度,提升操作效率。Word精灵插件兼容32位与64位的Microsoft Word版本,支持Word 2007、2010、2013以及Word 2016操作系统,但不适用于Word 2003版本。此外,该插件同样支持WPS办公软件。 功能概述: 1、表格自动调整宽度:自动优化文档内所有表格的显示宽度。 2、批量导出批注信息:将文档内所有批注集中导出到Excel工作簿中。 3、表格至Excel多表导出:在将表格导出到Excel时,每个Word表格将独立存放在一个工作表中,Word文档内的表格数量与Excel生成的工作表数量相等,并附有工作表目录。 4、表格至Excel单表导出:将文档内所有表格整合后导出到一个Excel工作表中,多个表格将按顺序排列于同一工作表内。 5、统一图片分辨率:对指定文件夹内的所有图片进行分辨率标准化处理。 6、图片批量缩放:依据设定比例对图片进行放大或缩小,支持按百分比调整。 7、图片批量插入:将图片批量插入到当前文档,可选择图片名称的展示形式,并设定图片的高度。 8、图片格式统一转换:将指定文件夹内的所有图片转换为相同的文件格式。 9、内容批量替换:对文档内容、页眉及页脚执行批量替换操作,例如将数字1替换为字母A,数字2替换为字母B,数字3替换为字母C等。 10、图片批量导出:将文档内所...

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧