我刚问了一个关于堆栈溢出的问题,这就是我得到的答案。
fname = raw_input("Enter file name: ")
if len(fname) == 0:
fname = 'mbox-short.txt'
fh = open(fname)
count = 0
total = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:") : continue
count = count + 1
pos = line.find(' ')
total = total + float(line[pos:])
average = total/count
print 'Average spam confidence:',average
我知道如何使用find函数,但我不明白答案是如何得到的。我的问题在代码的第10行和第11行(查找和总行)。有人可以向我解释一下。谢谢。
答案 0 :(得分:0)
pos = line.find(' ')
此行表示line
,pos
将首次出现space
。
total = total + float(line[pos:])
并且此行表示在space
后出现一个应该转换为float
的字符串,并且应该将其添加到总数中:
例如,如果行是这样的:
X-DSPAM-Confidence: 4.23232
然后pos
将为19(空格位置),line[pos:]
(从空格到字符串末尾)为"4.23232"
,然后您将其转换为float
,这意味着{ {1}}
答案 1 :(得分:0)
我不知道输入的格式,但我可以想象它是这样的: “texte 123.33”
因此,line.find(“”)用于查找第一个空格。 之后,行[pos:]提取空格后的部分,浮动将此部分转换为浮点数以添加到总数。 在一行(而不是两行)中执行此操作的更好方法应该是:
scp username@servername:/path/path/"$file" /my/home/directory
答案 2 :(得分:0)