我正在尝试学习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')
之后我完全迷失了如何开始这个
答案 0 :(得分:5)
您需要遍历文件的行。这是一个骨架实现:
# ...
with open(filename) as f:
for line in f:
tok = line.split()
op = tok[0]
qty = int(tok[1])
# ...
# ...
这会将每个操作和数量分别放入op
和qty
。
我留给你填写空白(# ...
)。
答案 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])