读取文件并将每一行用作变量?

时间:2018-10-12 04:18:32

标签: python python-3.x file variables

我知道我可以读取文件(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 :(得分:6)

等效的pythonic可能是:

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版本)

答案 1 :(得分:0)

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()