Создание нескольких файлов с синтаксисом sys.argv - PullRequest
0 голосов
/ 30 апреля 2020

Я делаю несколько вещей: 1) чтение в файле с 2 столбцами, каждый с плавающей запятой, чтобы установить sh диапазон 2) чтение строк во втором файле, сравнение столбцов с этим файлом входного диапазона 3) запись в новый файл - целая строка второго файла, если определенные значения находятся в пределах заданного диапазона от file1 и именуют этот новый файл с column1 и column2 из rangefile

Каждый раз, когда это условие верно, я хочу создать файл, который основанный вне диапазона. Он должен l oop пройти через весь второй файл, проверяя и записывая в значения файла в строке, находящейся в пределах этого одного диапазона, записывать новый .txt с этим диапазоном, а затем повторять для последующих диапазонов.

Что-то вроде:

inputrange = sys.argv[1]
inputfile = sys.argv[2]
outputname = sys.argv[3]

range_handle = open(inputrange, "r")
input_fhandle = open(inputfile, "r")
output_fhandle = open(outputname, "w")
for line in range_handle:
    #read in lines & store values of first second range... assume line.strip() and .split() have already been done
    first_range = float(storage_lines[0])
    second_range = float(storage_lines[1])
    for linez in input_fhandle:
        #assume .split() and .split() have been performed to create a list of vals of everything in line and that indices of the list have been assigned to variables -- in this case thing1, thing2, thing3 are some of those indices
                average: float = (float(thing1) + float(thing2) + float(thing3)/3.0)
output_fhandle = output_fhandle + "_" + str(first_range) + "_" + str(second_range) + "_range.txt"
        if(average >= first_range and average <= second_range)):
            output_fhandle.write(f"writes whole line of data to file")

В частности, я хочу, чтобы мой выходной файл выглядел примерно так: output_fhandle_ (first_range) _ (second_range) _range.txt Но ошибка, которую я получаю:

output_fhandle = output_fhandle + "_" + str(first_range) + "_" + str(second_range) + "_range.txt"
TypeError: unsupported operand type(s) for +: '_io.TextIOWrapper' and 'str'

Где я ошибаюсь в своем синтаксисе и как я могу убедиться, что каждый создаваемый файл уникален для того, что читается в строке моего файла range.txt?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...