所以我有这个问题需要解决。我有一个文件,类似于:
11-08-2012; 1485; 10184; 7,53; 31; 706; 227; 29; 6; 1102
12-08-2012; 2531; 10272; 7,59; 25; 695; 222; 26; 22; 1234
13-08-2012; 1800; 13418; 8,66; 46; 714; 203; 50; 6; 0757
14-08-2012; 2009; 11237; 9,43; 81; 655; 246; 49; 7; 1783
而且我应该能够先读取“ 1485”部分,然后读取“ 2531”部分,然后读取“ 1800”部分,一直到文件末尾,最后进行总结。我怎么做?我在这段文字下写了我如何尝试解决这个问题。但是我似乎迷失了这个。有人可以帮忙吗?
同时为True:
f.seek(12)
text=f.read(4)
text=f.readline()
if(text==""):
break
return text
[numpy
,pandas
,简单的coroutines
等有多种方法可以执行此操作。我正在添加最接近您的方法。
total = 0
with open('exmplefile.txt','r') as f:
for line in f:
elements = line.split(';')
num_of_interest = int(elements[1])
# you can add a print if you want
total += num_of_interest
print(total)
尝试一下
mylist = []
for string in file:
mynum = string.split(';')[1]
mylist.append(mynum)
sum([int(i) for i in mylist])
此解决方案是通过获取公共术语的第一个和第二个索引,在这种情况下为;
。
with open(filename,'r') as file:
file_list = file.readlines()
sum = 0
for line in file_list:
loc = line.find(';')
first_loc = loc + 1
last_loc = loc +line[loc+1:].find(';')+1
sum = sum + int(line[first_loc:last_loc])
print(sum)
此解决方案适用于4位数字不是数组中的第二项的情况>
with open("path/to/file") as f:
f1 = f.readlines()
sum = 0
for line in f1:
lineInArray = line.split(';')
for digit in lineInArray:
if len(digit.strip()) == 4 and digit.strip().isnumeric():
sum += int(digit)
谢谢你们回答我!这些方法肯定是很棒的方法,但这是一个学校项目,我们是许多初学者,我们没有被教过很多这样的代码。例如“ with open as f:”。所以任何人都可以提出最简单/最原始的解决方案!