我有一个带有一些标题的结果txt文件,然后在不同的列中列出几个结果(用空格分隔)。我想根据给定变量的值来控制程序的执行(比如第6列)。所以我必须跳过第一行,然后在数组中存储第6列的值)。我怎么能这样做?
第三次尝试:
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()
答案 0 :(得分:2)
你可以试试这个:
inputFile = open(path,'r')
for n, line in enumerate(inputFile):
if n > given_number:
variableX = line.split(' ')[5]
inputFile.close()
根据提供的新信息进行编辑:
由于您有一个标题,然后是数据,然后是一个额外的行,您可以跳过标题行,然后只处理具有适当数量列的标题行。
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()