Python String для обработки списка - PullRequest
2 голосов
/ 21 ноября 2011

Мне кажется, что мои недавно полученные знания все еще недостаточны, когда дело доходит до обработки строк.Пожалуйста, помогите мне решить следующую проблему: (Обратите внимание: это более простая версия моего требования)

Итак. У меня есть файл (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 ]

5 голосов
/ 21 ноября 2011

Если вы используете стандартный 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(',')
2 голосов
/ 21 ноября 2011

Вот простой ответ:

s = 'day=monday,tuesday,wednesday'
mylist = {}
key, value = s.split('=')
mylist[key] = value.split(',')

print mylist['day'][0]

Output: monday
1 голос
/ 21 ноября 2011

Вы можете переписать ваш файл в YAML или XML, если вы хотите, чтобы ваше приложение соответствовало стандарту. В любом случае, если вы хотите сохранить свой простой формат, это должно быть слово:

Учитывая файл данные :

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']
1 голос
/ 21 ноября 2011

Вас может заинтересовать модуль ConfigParser.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...