打开txt文件,跳过第一行,然后监视给定的一列数据

打开txt文件,跳过第一行,然后监视给定的一列数据

问题描述:

我有一个带有某些标题的结果txt文件,然后在不同的列(用空格分隔)中列出几个结果。我想根据给定变量的值来控制程序的执行(比如说第6列)。所以我必须跳过第一行,然后将第六列的值存储在数组中)。我怎样才能做到这一点?打开txt文件,跳过第一行,然后监视给定的一列数据

第三次尝试:根据提供的新信息

inputFile = open(path,'r') 
for n, line in enumerate(inputFile): 
    if n > given_number: 
     variableX = line.split(' ')[5] 
inputFile.close() 

编辑:

既然你有

STA =文件的路径

head_lines = 4 
i = 0 
variableX = [] 
if path.exists(STA) and path.isfile(STA) and access(STA, R_OK): 
    inputFile = open(STA,'r') 
    for n, line in enumerate(inputFile): 
     if n > head_lines: 
      cols = line.split() 
      if len(cols) == 9: 
       variableX.append(cols[7]) 
       i = i+1 
    for i in range(len(variableX)): 
     if i>=3 and float(variableX[i-2])<=0 and \ 
     float(variableX[i-1])<=0 and float(variableX[i])<=0: 
      try: 
       os.system('abaqus terminate job=file_name') 
       time.sleep(1) 
       os.remove('path to file') 
      except: 
       print "No such file" 
    inputFile.close() 
+1

这是相当无足轻重的。你卡在哪里? – 2012-03-12 16:45:14

+0

是的。这是相当微不足道的。发布一些你已经试过的代码,我们可以告诉你如何修复它 – inspectorG4dget 2012-03-12 16:46:06

+0

嗨!我是一个Python的新手,所以基本上从头开始... – jpcgandre 2012-03-12 16:46:29

你可以试试这个一个标题,然后数据,然后一个额外的行,你可以跳过标题行,然后处理只有那些具有适当的列数的那些。

inputFile = open(path,'r') 
head_lines = 4 
for n, line in enumerate(inputFile): 
    if n > head_lines: 
     cols = line.split() 
     if len(cols) == 9:    
      variableX = cols[7] 
      # do whatever you need with variableX 
inputFile.close() 
+0

行!非常感谢! – jpcgandre 2012-03-12 17:07:41

+0

它不适合我。 IndexError:列表索引超出范围 #* variableX = line.split('')[7] – jpcgandre 2012-03-12 18:53:14

+0

该错误意味着在该行中不存在8列(意思是由一列空格分隔的列字)。如果有更少的列的行,你需要把它变成acount。你可以先进行分割,用'len()'对项目进行计数,然后在每种情况下分配你需要的列。行! – 2012-03-12 22:23:03