У меня есть входной файл со списком строк.Улучшение скорости скрипта python
Я повторяю каждую четвертую строку, начиная со строки два.
С каждой из этих строк я делаю новую строку из первого и последнего 6 символов и помещаю ее в выходной файл, только если эта новая строка уникальна.
Код, который я написал для этого, но я работаю с очень большими файлами секвенсирования и работает в течение дня и не добился большого прогресса. Поэтому я ищу любые предложения, чтобы сделать это намного быстрее, если это возможно. Благодарю.
def method():
target = open(output_file, 'w')
with open(input_file, 'r') as f:
lineCharsList = []
for line in f:
#Make string from first and last 6 characters of a line
lineChars = line[0:6]+line[145:151]
if not (lineChars in lineCharsList):
lineCharsList.append(lineChars)
target.write(lineChars + '\n') #If string is unique, write to output file
for skip in range(3): #Used to step through four lines at a time
try:
check = line #Check for additional lines in file
next(f)
except StopIteration:
break
target.close()
Я предполагаю, что проблема заключается в том, что когда-то линияCharsList становится большой, сценарий будет очень медленным. У меня нет никаких предложений, но это, вероятно, проблема. – Loocid
Вот что я тоже думаю. ОЗУ не должно быть проблемой, поскольку я работаю над вычислительным кластером с большим запасом. Но я не уверен, что есть лучший способ сделать это, чем просто хранить все в списке, подобном этому. –
В качестве стороннего варианта вы можете включить выходной файл в '' 'with'''' '' 'с открытым (input_file, 'r') как f, open (output_file, 'w') в качестве цели:' ' '. – wwii