2013-07-08 3 views
1

У меня есть текстовый файл с набором имен (заглавными буквами) и идентификаторов, разделенных двоеточием:преобразовать текстовый файл в список переменных

NAME1: ID1 
NAME2: ID2 
NAME3: ID3 
... 

Я хочу разбить это таким образом, чтобы

  1. имена в нижнем регистре, с пробелами, представленные как «_»
  2. все переформатирован в другом текстовом файле

Форматирование должно быть следующим:

firstname1_lastname1 = ["ID1"] 
firstname2_lastname2 = ["ID2"] 
firstname3_lastname3 = ["ID3"] 
... 

Каков наиболее эффективный способ сделать это?

+6

Is «наиболее эффективным» действительно важно, или вы просто ищете для нас, чтобы написать код для вас? Чтение файла по строкам и выполнение преобразования, вероятно, будет более чем достаточным, если у вас нет миллионов строк данных. Возможно, если производительность важна, вы можете поделиться более подробными сведениями, такими как размер вашего набора данных и то, что вы пробовали, слишком медленно. –

+1

Вы хотите ['split'] (http://www.tutorialspoint.com/python/string_split.htm) в двоеточие. – squiguy

+1

Он также выглядит как простой 're' вызов мне или даже использование' sed' или 'awk'. – icedwater

ответ

1

Как замечают комментарии, это довольно простая задача.

Казалось бы, что вы просите что-то вроде этого:

with open(input_path, 'r') as infile, open(output_path, 'w') as outfile: 
    for line in infile: 
    line_name, line_id = line.split(':') 
    line_name = line_name.strip().replace(' ', '_') 
    print('{} = ["{}"]'.format(line_name, line_id.strip())) 
+0

Мне нравится 'with' , это то, что я до сих пор недостаточно часто использую. – icedwater

Смежные вопросы