如何在文件中逐行读取文件?

时间:2013-04-08 06:47:29

标签: python

我正在尝试学习python而我正在从一本书中解决问题,但我仍然坚持一个问题。它要求我读取一个文件,每行包含一个'a'或's',基本上我的总数是500.如果该行包含'a',它会在它旁边添加金额,例如它会说“20”,它会增加20我的总数,对于s,它会减去这个数量。最后,我应该在完成所有更改之后返回总数。到目前为止,我得到了

def NumFile(file:
    infile = open(file,'r')
    content = infile.readlines()
    infile.close()
    add = ('a','A')
    subtract = ('s','S')
之后我完全迷失了如何开始这个

2 个答案:

答案 0 :(得分:5)

您需要遍历文件的行。这是一个骨架实现:

# ...
with open(filename) as f:
    for line in f:
        tok = line.split()
        op = tok[0]
        qty = int(tok[1])
        # ...
# ...

这会将每个操作和数量分别放入opqty

我留给你填写空白(# ...)。

答案 1 :(得分:0)

变体可能是

f = open('myfile.txt','r')
lines  = f.readlines()
for i in lines:
  i = i.strip() # removes new line characters
  i = i.split() # splits a string by spaces and stores as a list
  key = i[0]    # an 'a' or an 's'
  val = int( i[1] )   # an integer, which you can now add to some other variable

尝试添加print语句以查看最新情况。关于python的一个很酷的事情是你可以在一行中堆叠多个命令。这是一个等效的代码

for i in open('myfile.txt','r').readlines():
  i   = i.strip().split()
  key = i[0]
  val = int (i[1])