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

求助!在python里怎么可以不用split却提取文件中的具体数据?

求助!在python里怎么可以不用split却提取文件中的具体数据?

cnaz 2016-10-08 10:50:01
如题,详细来讲是,不但不能用split, dictionary和各种collection都不让用!程序的要求是在一个txt格式的表格里,找到第九行最小的那个数字,并且通过这个数字,同时找到与数字同一列的,年份和四十四行的另一个数值。我的思路里,知道要用slicing,但是尝试写了一些之后发现因为没有剔除一行中的非数字字符所以运行不了。min_num = 100000 start_index = 0  index_num = 0 min_index = 0 i = 0 def open_file():     '''Continously prompt for file until successfully opened.'''     while True:         in_file = input("input the filename:")         try:             in_file = open ("GDP.txt","r")             return in_file         except:             print("Error. Please input again:")              in_file = open_file() count = 1 for line in in_file:     if count == 9:         line9 = line         print (len(line9))         print (line9[76:303:12])         while i < len (line9):             if line9[i].isdigit() is False:                 checking_value = eval(line9[start_index:i])                 if checking_value < min_num:                     min_num = checking_value                     min_index = index_num                 start_index = i + 1                  index_num += 1             i += 1         print(min_num, min_index)     count += 1 print (line9)求助!我这样写方法对吗?有错误怎么修改?GDP.txt
查看完整描述

3 回答

?
cnaz

TA贡献3条经验 获得超0个赞

因为是初学者,所以用的是笨方法。现在写完了一部分,在查找第九行的最小值的时候就出现了问题

index = 0
min_value_str=str("10000")
n=1

#中间是一段读文件和得到具体行数的操作
    
for value in line9:
    value= line9[76+12*n:76+12*(n+1)]
    if value < min_value_str:
        min_value_str = value
        n += 1
print(line9)
print(value)

line9可以很好的输出,但是value确实在第三个数字就停下了。如果把n+= 1 和if 平行的话就根本显示不出value

请问是哪里出错了呢?

查看完整回答
反对 回复 2016-10-09
  • 3 回答
  • 0 关注
  • 1762 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信