Python字符串转换为列表处理

2 投票
4 回答
603 浏览
提问于 2025-04-17 06:44

我觉得我最近学到的知识在处理字符串方面还是不够。请帮我解决下面的问题:

我有一个文件(叫做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(',')

撰写回答