2010-08-24 3 views
0

У меня есть следующая проблема. У меня есть список различных текстовых строк, в которых у всех есть запятая. Я хочу сохранить текст слева от запятой и удалить все, что происходит после запятой, для всех строк в файле.Необходимо удалить часть текстовых строк в python

Вот пример строки из файла:

1780375 «004956, вниз, 943794, 22634, ET, 2115,

Я хотел бы, чтобы удалить символы после первой запятой:

Я пытался сделать программу еще Возникают некоторые проблемы Вот что я до сих пор:.

datafile = open('C:\\middlelist3.txt', 'r') 

smallerdataset = open('C:\\nocommas.txt', 'w') 

counter = 1 

for line in datafile: 
    print counter 
    counter +=1 
    datafile.rstrip(s[,]) 
    smallerdataset.write(line) 

ответ

4

Вы можете использовать split для этого он разбивает строку. на данной подстроке. Поскольку вам нужна только первая часть, я устанавливаю 1 в качестве второго параметра, чтобы сделать ее только разделенной на первую.

Вместо того, чтобы использовать счетчик, вы можете использовать enumerate, как это:

datafile = open('C:\\middlelist3.txt', 'r') 

smallerdataset = open('C:\\nocommas.txt', 'w') 

for counter, line in enumerate(datafile): 
    print counter 
    smallerdataset.write(line.split(',', 1)[0]) 

smallerdataset.close() 

Это, как вы могли бы улучшить свой сценарий, используя with заявление и генераторные выражения:

with open('C:\\middlelist3.txt') as datafile: 
    list = (line.split(',', 1)[0] for line in datafile) 
    with open('C:\\nocommas.txt', 'w') as smallfile: 
     smallfile.writelines(list) 
Смежные вопросы