これは私がやっていることです
import csv
output = open('output.txt' , 'wb')
# this functions return the min for num.txt
def get_min(num):
return int(open('%s.txt' % num, 'r+').readlines()[0])
# temporary variables
last_line = ''
input_list = []
#iterate over input.txt in sort the input in a list of tuples
for i, line in enumerate(open('input.txt', 'r+').readlines()):
if i%2 == 0:
last_line = line
else:
input_list.append((last_line, line))
filtered = [(header, data[:get_min(header[-2])] + '\n' ) for (header, data) in input_list]
[output.write(''.join(data)) for data in filtered]
output.close()
このコードinput.txt
では、次のようなものです
>012|013|0|3|M
AFDSFASDFASDFA
>005|5|67|0|6
ACCTCTGACC
>029|032|4|5|S
GGCAGGGAGCAGGCCTGTA
そして、num.txt
このようなものです
M 4
P 10
上記で、のように同じ最後の列を見てinput.txt
からの値の量を確認し、その値に従ってその文字をカットすることを望みますnum.txt
num.txt
私のコードのエラーは、整数テキストファイルのみを受け入れることであり、アルファベットを含むファイルも受け入れる必要があると思います