我有 2 个代码与我要求的工作相同,但我仍然没有为我的数据集获得任何有用或更好的代码以使其对我有用,首先让我清楚我在做什么。我有2 TEXT
文件,一个名为 as input_num
,第二个名为 as ,从其中有数字的input_data
名称中可以清楚地看出,其中有数据,这两个文件的大小为 8 到 10 mb,让我向您展示它们的一部分,这是'input_num.txt'input_num.txt
input_data
ASA5.txt DF4E6.txt DFS6Q7.txt
和这个input_data.txt
>56|61|83|92|ASA5
Dogsarebarking
这2个是他们的文本文件的一些部分,input_data.txt
最后一列包含ASA5
等等,这些是来自的数据input_num.txt
,所以程序首先检查最后一列是>56|61|83|92|ASA5
而ASA5
不是goto input_num.txt
,5
它包含一些input_num.txt
像4
上面一样的值,所以它回到input_data.txt
goto 单词并将它们削减为 4 ,
我有 2 个代码:1 是
import os
import re
file_c = open('num_data.txt')
file_c = file_c.read()
lines = re.findall(r'\w+\.txt \d+', file_c)
numbers = {}
for line in lines:
line_split = line.split('.txt ')
hash_name = line_split[0]
count = line_split[1]
numbers[hash_name] = count
file_i = open('input_data.txt')
file_i = file_i.read()
for hash_name, count in numbers.iteritems():
regex = '(' + hash_name.strip() + ')'
result = re.findall(r'>.*\|(' + regex + ')(.*?)>', file_i, re.S)
if len(result) > 0:
data_original = result[0][2]
stripped_data = result[0][2][int(count):]
file_i = file_i.replace(data_original, '\n' + stripped_data)
f = open('input_new.txt', 'wt')
f.write(file_i)
f.close()
第二个是
import csv
output = open('output.txt' , 'wb')
def get_min(num):
return int(open('%s.txt' % num, 'r+').readlines()[0])
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()