如何读取文件中的某些 4 位数字并移动到另一行并执行相同的操作等等

所以我有这个问题需要解决。我有一个类似的文件:


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”部分,一直到文件末尾,最后总结它们。我怎么做?我在这篇文章下写了我是如何尝试用 while 来解决这个问题的。但我似乎迷失了这个。任何人都可以帮忙吗?


而真:


    f.seek(12)

    text=f.read(4)


    text=f.readline()

    if(text==""):

        break

    return text


哔哔one
浏览 170回答 4
4回答

翻翻过去那场雪

有很多方法可以做到这一点,用numpy, pandas, simplecoroutines等等。我正在添加最接近您的方法的一个。total = 0with 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_interestprint(total)

阿波罗的战车

此解决方案是通过获取常用术语的第一个和第二个索引,在这种情况下为;。with open(filename,'r') as file:    file_list = file.readlines()sum = 0for 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)

烙印99

此解决方案适用于当 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)

动漫人物

尝试这个mylist = []for string in file:    mynum = string.split(';')[1]    mylist.append(mynum)sum([int(i) for i in mylist])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python