2014-11-23 6 views
0

Мне нужно прочитать данные из текстового файла из командной строки. Это не так сложно читать в каждой строке, но мне нужен способ разделить каждую часть строки.Python: чтение данных из файла

Файл содержит следующее для того, чтобы несколько сотен строк:
String (иногда более чем 1 слово)
Integer
Строка (иногда более чем 1 слово)
Integer

Так, например, в входной сигнал может иметь:

Hello 5 Sample String 10 

Текущая реализация, которую я имею для чтения в каждой строке, выглядит следующим образом: как я могу ее модифицировать для разделения т. е. в то, что я хочу? Я попытался расщепить строку, но я всегда получаю только один символ первой строки таким образом без целых чисел или любой части второй строки.

with open(sys.argv[1],"r") as f: 
    for line in f: 
     print(line) 

Нужный результат будет:

Hello 
5 
Sample String 
10 

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

+0

Ваш вопрос непонятен, в чем проблема? можете ли вы добавить вход и выход желания? – Kasramvd

+0

уточнить формат линии – user3684792

+0

Исправлен вопрос – mich97

ответ

0

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

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

+0

Спасибо за ввод. Я выяснил, что я пытаюсь сделать. Я могу использовать readline, а затем получить доступ к частям строки. Например, строка [12:18] дает мне символы с 12 по 18 строки. – mich97

+0

Это определенно работает, если ваши линии находятся в формате фиксированной ширины. –

+0

Они, я должен был упомянуть об этом. – mich97

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