Откройте TXT-файл, пропустите первые строки, а затем отслеживать заданный столбец данных - PullRequest
0 голосов
/ 12 марта 2012

У меня есть текстовый файл результатов с некоторыми заголовками, а затем перечисляет несколько результатов в разных столбцах (разделенных пробелами). Я хочу контролировать выполнение программы, основываясь на значениях данной переменной (скажем, 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()

1 Ответ

2 голосов
/ 12 марта 2012

Вы можете попробовать это:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...