Чтение файла и использование каждой строки в качестве переменных? - PullRequest
0 голосов
/ 12 октября 2018

Я знаю, что могу прочитать файл (file.txt), затем использовать каждую строку как часть переменной.

f = open( "file.txt", "r" )
for line in f:
    sentence = "The line is: " + line
    print (sentence)
f.close()

Однако, допустим, у меня есть файл со следующими строками:

joe 123
mary 321
dave 432

В Bash я могу сделать что-то вроде:

cat file.txt | while read name value
do
 echo "The name is $name and the value is $value"
done

Как я могу сделать это с Python?Другими словами, каждое «слово» в каждой строке считывает их переменными?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 12 октября 2018
f = open( "file.txt", "r" )
for line in f:
    values = line.split()
    sentence = "The name is " + values[0] + " and the value is " + values[1]
    print (sentence)
f.close()
0 голосов
/ 12 октября 2018

Питонический эквивалент может быть:

with open( "file.txt", "r" ) as f:
    for line in f:
        name, value = line.split()
        print(f'The name is {name} and the value is {value}')

При этом используется:

  • менеджер контекста (оператор with) для автоматического закрытия файла после завершения
  • распаковка кортежа / списка для назначения name и value из списка, возвращенного из .split()
  • нового синтаксиса строки f, который имеет переменную интерполяцию.(используйте str.format для более старых версий Python)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...