Python字符串转换为列表处理
我觉得我最近学到的知识在处理字符串方面还是不够。请帮我解决下面的问题:
我有一个文件(叫做myoption),内容如下:
day=monday,tuesday,wednesday
month=jan,feb,march,april
holiday=thanksgiving,chirstmas
我的Python脚本应该能够读取这个文件,并处理读取到的信息,最后得到三个列表变量,如下所示:
day --> ['monday','tuesday','wednesday']
month --> ['jan','feb','march','april']
holiday --> ['thanksgiving','christmas']
请注意: 根据我的需求,myoption文件的内容格式应该简单。 所以你可以自由修改'myoption'文件的格式,但内容不变——这样可以给你一些灵活性。
谢谢 :)
4 个回答
1
如果你想让你的应用程序遵循一个标准,可以把你的文件改成YAML或XML格式。
不过,如果你想保持简单的格式,这样做应该没问题:
假设你的文件叫data:
day=monday,tuesday,wednesday
month=jan,feb,march,april
holiday=thanksgiving,chirstmas
我建议使用这个Python脚本
f = open("data")
for line in f:
content = line.split("=")
#vars to set the variable name as the string found and
#[:-1] to remove the new line character
vars()[content[0]] = content[1][:-1].split(",")
print day
print month
print holiday
f.close()
运行后会得到的结果是
python main.py
['monday', 'tuesday', 'wednesday']
['jan', 'feb', 'march', 'april']
['thanksgiving', 'chirstmas']
2
这是一个简单的答案:
s = 'day=monday,tuesday,wednesday'
mylist = {}
key, value = s.split('=')
mylist[key] = value.split(',')
print mylist['day'][0]
Output: monday
5
如果你使用标准的ConfigParser
模块,那么你的数据需要以INI文件格式来保存,格式大概是这样的:
[options]
day = monday,tuesday,wednesday
month = jan,feb,march,april
holiday = thanksgiving,christmas
然后你可以这样读取这个文件:
import ConfigParser
parser = ConfigParser.ConfigParser()
parser.read('myoption.ini')
day = parser.get('options','day').split(',')
month = parser.get('options','month').split(',')
holiday = parser.get('options','holiday').split(',')