为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2022-06-22 19:45:58
所以我有这个问题需要解决。我有一个类似的文件:11-08-2012;1485;10184;7,53;31;706;227;29;6;110212-08-2012;2531;10272;7,59;25;695;222;26;22;123413-08-2012;1800;13418;8,66;46;714;203;50;6;075714-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
查看完整描述

4 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

有很多方法可以做到这一点,用numpy, pandas, simplecoroutines等等。我正在添加最接近您的方法的一个。


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)


查看完整回答
反对 回复 2022-06-22
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

此解决方案是通过获取常用术语的第一个和第二个索引,在这种情况下为;。


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)


查看完整回答
反对 回复 2022-06-22
?
烙印99

TA贡献1829条经验 获得超13个赞

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


查看完整回答
反对 回复 2022-06-22
?
动漫人物

TA贡献1815条经验 获得超10个赞

尝试这个


mylist = []

for string in file:

    mynum = string.split(';')[1]

    mylist.append(mynum)

sum([int(i) for i in mylist])



查看完整回答
反对 回复 2022-06-22
  • 4 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号