首页 > 解决方案 > 操作文本文件并在 python 中创建一个新文件

问题描述

我将新模型和标签文件都复制到 iOS 应用程序。应用参数如下:

toco \
    --graph_def_file=pola_retrained.pb \
    --output_file=mobilenet_v1_1.0_224.tflite \
    --input_format=TENSORFLOW_GRAPHDEF \
    --output_format=TFLITE \
    --inference_type=QUANTIZED_UINT8 \
    --inference_input_type=QUANTIZED_UINT8 \
    --input_array=Placeholder \
    --output_array=final_result \
    --input_shape=1,224,224,3\
    --default_ranges_min=0 \
    --default_ranges_max=6 \
    --mean_value=128 \
    --std_dev_values=128 \

标签: python

解决方案


您可以将 sum 与生成器表达式一起使用来计算符合条件的 small 行数,然后使用 str.join 生成所需的输出:

major = '''chr1    +   1071396 1271396 LOC
chr12   +   1101483 1121483 MIR200B'''

minor = '''chr1    1071496 1071536 1
chr1    1071536 1071566 0
chr1    1073566 1073366 1
chr12   1101487 1101516 0
chr12   1101625 1101671 1'''

major, minor = ([l.split() for l in d.splitlines()] for d in (major, minor))

for name_major, sign, low, high, note in major:
    parts = list(range(int(low), int(high) + 1, (int(high) - int(low)) // 100))
    for part, (low, high) in enumerate(zip(parts, parts[1:]), 1):
        count = sum(1 for name_minor, n1, n2, _ in minor if name_major == name_minor and all(low <= int(n) <= high for n in (n1, n2)))
        print('\t'.join((name_major, sign, str(low), str(high), note, '%s_part%d' % (note, part), str(count))))

这输出:

chr1    +   1071396 1073396 LOC LOC_part1   2
chr1    +   1073396 1075396 LOC LOC_part2   0
chr1    +   1075396 1077396 LOC LOC_part3   0
chr1    +   1077396 1079396 LOC LOC_part4   0
chr1    +   1079396 1081396 LOC LOC_part5   0
chr1    +   1081396 1083396 LOC LOC_part6   0
chr1    +   1083396 1085396 LOC LOC_part7   0
chr1    +   1085396 1087396 LOC LOC_part8   0
chr1    +   1087396 1089396 LOC LOC_part9   0
chr1    +   1089396 1091396 LOC LOC_part10  0
chr1    +   1091396 1093396 LOC LOC_part11  0
chr1    +   1093396 1095396 LOC LOC_part12  0
chr1    +   1095396 1097396 LOC LOC_part13  0
chr1    +   1097396 1099396 LOC LOC_part14  0
chr1    +   1099396 1101396 LOC LOC_part15  0
chr1    +   1101396 1103396 LOC LOC_part16  0
chr1    +   1103396 1105396 LOC LOC_part17  0
chr1    +   1105396 1107396 LOC LOC_part18  0
chr1    +   1107396 1109396 LOC LOC_part19  0
chr1    +   1109396 1111396 LOC LOC_part20  0
chr1    +   1111396 1113396 LOC LOC_part21  0
chr1    +   1113396 1115396 LOC LOC_part22  0
chr1    +   1115396 1117396 LOC LOC_part23  0
chr1    +   1117396 1119396 LOC LOC_part24  0
chr1    +   1119396 1121396 LOC LOC_part25  0
chr1    +   1121396 1123396 LOC LOC_part26  0
chr1    +   1123396 1125396 LOC LOC_part27  0
chr1    +   1125396 1127396 LOC LOC_part28  0
chr1    +   1127396 1129396 LOC LOC_part29  0
chr1    +   1129396 1131396 LOC LOC_part30  0
chr1    +   1131396 1133396 LOC LOC_part31  0
chr1    +   1133396 1135396 LOC LOC_part32  0
chr1    +   1135396 1137396 LOC LOC_part33  0
chr1    +   1137396 1139396 LOC LOC_part34  0
chr1    +   1139396 1141396 LOC LOC_part35  0
chr1    +   1141396 1143396 LOC LOC_part36  0
chr1    +   1143396 1145396 LOC LOC_part37  0
chr1    +   1145396 1147396 LOC LOC_part38  0
chr1    +   1147396 1149396 LOC LOC_part39  0
chr1    +   1149396 1151396 LOC LOC_part40  0
chr1    +   1151396 1153396 LOC LOC_part41  0
chr1    +   1153396 1155396 LOC LOC_part42  0
chr1    +   1155396 1157396 LOC LOC_part43  0
chr1    +   1157396 1159396 LOC LOC_part44  0
chr1    +   1159396 1161396 LOC LOC_part45  0
chr1    +   1161396 1163396 LOC LOC_part46  0
chr1    +   1163396 1165396 LOC LOC_part47  0
chr1    +   1165396 1167396 LOC LOC_part48  0
chr1    +   1167396 1169396 LOC LOC_part49  0
chr1    +   1169396 1171396 LOC LOC_part50  0
chr1    +   1171396 1173396 LOC LOC_part51  0
chr1    +   1173396 1175396 LOC LOC_part52  0
chr1    +   1175396 1177396 LOC LOC_part53  0
chr1    +   1177396 1179396 LOC LOC_part54  0
chr1    +   1179396 1181396 LOC LOC_part55  0
chr1    +   1181396 1183396 LOC LOC_part56  0
chr1    +   1183396 1185396 LOC LOC_part57  0
chr1    +   1185396 1187396 LOC LOC_part58  0
chr1    +   1187396 1189396 LOC LOC_part59  0
chr1    +   1189396 1191396 LOC LOC_part60  0
chr1    +   1191396 1193396 LOC LOC_part61  0
chr1    +   1193396 1195396 LOC LOC_part62  0
chr1    +   1195396 1197396 LOC LOC_part63  0
chr1    +   1197396 1199396 LOC LOC_part64  0
chr1    +   1199396 1201396 LOC LOC_part65  0
chr1    +   1201396 1203396 LOC LOC_part66  0
chr1    +   1203396 1205396 LOC LOC_part67  0
chr1    +   1205396 1207396 LOC LOC_part68  0
chr1    +   1207396 1209396 LOC LOC_part69  0
chr1    +   1209396 1211396 LOC LOC_part70  0
chr1    +   1211396 1213396 LOC LOC_part71  0
chr1    +   1213396 1215396 LOC LOC_part72  0
chr1    +   1215396 1217396 LOC LOC_part73  0
chr1    +   1217396 1219396 LOC LOC_part74  0
chr1    +   1219396 1221396 LOC LOC_part75  0
chr1    +   1221396 1223396 LOC LOC_part76  0
chr1    +   1223396 1225396 LOC LOC_part77  0
chr1    +   1225396 1227396 LOC LOC_part78  0
chr1    +   1227396 1229396 LOC LOC_part79  0
chr1    +   1229396 1231396 LOC LOC_part80  0
chr1    +   1231396 1233396 LOC LOC_part81  0
chr1    +   1233396 1235396 LOC LOC_part82  0
chr1    +   1235396 1237396 LOC LOC_part83  0
chr1    +   1237396 1239396 LOC LOC_part84  0
chr1    +   1239396 1241396 LOC LOC_part85  0
chr1    +   1241396 1243396 LOC LOC_part86  0
chr1    +   1243396 1245396 LOC LOC_part87  0
chr1    +   1245396 1247396 LOC LOC_part88  0
chr1    +   1247396 1249396 LOC LOC_part89  0
chr1    +   1249396 1251396 LOC LOC_part90  0
chr1    +   1251396 1253396 LOC LOC_part91  0
chr1    +   1253396 1255396 LOC LOC_part92  0
chr1    +   1255396 1257396 LOC LOC_part93  0
chr1    +   1257396 1259396 LOC LOC_part94  0
chr1    +   1259396 1261396 LOC LOC_part95  0
chr1    +   1261396 1263396 LOC LOC_part96  0
chr1    +   1263396 1265396 LOC LOC_part97  0
chr1    +   1265396 1267396 LOC LOC_part98  0
chr1    +   1267396 1269396 LOC LOC_part99  0
chr1    +   1269396 1271396 LOC LOC_part100 0
chr12   +   1101483 1101683 MIR200B MIR200B_part1   2
chr12   +   1101683 1101883 MIR200B MIR200B_part2   0
chr12   +   1101883 1102083 MIR200B MIR200B_part3   0
chr12   +   1102083 1102283 MIR200B MIR200B_part4   0
chr12   +   1102283 1102483 MIR200B MIR200B_part5   0
chr12   +   1102483 1102683 MIR200B MIR200B_part6   0
chr12   +   1102683 1102883 MIR200B MIR200B_part7   0
chr12   +   1102883 1103083 MIR200B MIR200B_part8   0
chr12   +   1103083 1103283 MIR200B MIR200B_part9   0
chr12   +   1103283 1103483 MIR200B MIR200B_part10  0
chr12   +   1103483 1103683 MIR200B MIR200B_part11  0
chr12   +   1103683 1103883 MIR200B MIR200B_part12  0
chr12   +   1103883 1104083 MIR200B MIR200B_part13  0
chr12   +   1104083 1104283 MIR200B MIR200B_part14  0
chr12   +   1104283 1104483 MIR200B MIR200B_part15  0
chr12   +   1104483 1104683 MIR200B MIR200B_part16  0
chr12   +   1104683 1104883 MIR200B MIR200B_part17  0
chr12   +   1104883 1105083 MIR200B MIR200B_part18  0
chr12   +   1105083 1105283 MIR200B MIR200B_part19  0
chr12   +   1105283 1105483 MIR200B MIR200B_part20  0
chr12   +   1105483 1105683 MIR200B MIR200B_part21  0
chr12   +   1105683 1105883 MIR200B MIR200B_part22  0
chr12   +   1105883 1106083 MIR200B MIR200B_part23  0
chr12   +   1106083 1106283 MIR200B MIR200B_part24  0
chr12   +   1106283 1106483 MIR200B MIR200B_part25  0
chr12   +   1106483 1106683 MIR200B MIR200B_part26  0
chr12   +   1106683 1106883 MIR200B MIR200B_part27  0
chr12   +   1106883 1107083 MIR200B MIR200B_part28  0
chr12   +   1107083 1107283 MIR200B MIR200B_part29  0
chr12   +   1107283 1107483 MIR200B MIR200B_part30  0
chr12   +   1107483 1107683 MIR200B MIR200B_part31  0
chr12   +   1107683 1107883 MIR200B MIR200B_part32  0
chr12   +   1107883 1108083 MIR200B MIR200B_part33  0
chr12   +   1108083 1108283 MIR200B MIR200B_part34  0
chr12   +   1108283 1108483 MIR200B MIR200B_part35  0
chr12   +   1108483 1108683 MIR200B MIR200B_part36  0
chr12   +   1108683 1108883 MIR200B MIR200B_part37  0
chr12   +   1108883 1109083 MIR200B MIR200B_part38  0
chr12   +   1109083 1109283 MIR200B MIR200B_part39  0
chr12   +   1109283 1109483 MIR200B MIR200B_part40  0
chr12   +   1109483 1109683 MIR200B MIR200B_part41  0
chr12   +   1109683 1109883 MIR200B MIR200B_part42  0
chr12   +   1109883 1110083 MIR200B MIR200B_part43  0
chr12   +   1110083 1110283 MIR200B MIR200B_part44  0
chr12   +   1110283 1110483 MIR200B MIR200B_part45  0
chr12   +   1110483 1110683 MIR200B MIR200B_part46  0
chr12   +   1110683 1110883 MIR200B MIR200B_part47  0
chr12   +   1110883 1111083 MIR200B MIR200B_part48  0
chr12   +   1111083 1111283 MIR200B MIR200B_part49  0
chr12   +   1111283 1111483 MIR200B MIR200B_part50  0
chr12   +   1111483 1111683 MIR200B MIR200B_part51  0
chr12   +   1111683 1111883 MIR200B MIR200B_part52  0
chr12   +   1111883 1112083 MIR200B MIR200B_part53  0
chr12   +   1112083 1112283 MIR200B MIR200B_part54  0
chr12   +   1112283 1112483 MIR200B MIR200B_part55  0
chr12   +   1112483 1112683 MIR200B MIR200B_part56  0
chr12   +   1112683 1112883 MIR200B MIR200B_part57  0
chr12   +   1112883 1113083 MIR200B MIR200B_part58  0
chr12   +   1113083 1113283 MIR200B MIR200B_part59  0
chr12   +   1113283 1113483 MIR200B MIR200B_part60  0
chr12   +   1113483 1113683 MIR200B MIR200B_part61  0
chr12   +   1113683 1113883 MIR200B MIR200B_part62  0
chr12   +   1113883 1114083 MIR200B MIR200B_part63  0
chr12   +   1114083 1114283 MIR200B MIR200B_part64  0
chr12   +   1114283 1114483 MIR200B MIR200B_part65  0
chr12   +   1114483 1114683 MIR200B MIR200B_part66  0
chr12   +   1114683 1114883 MIR200B MIR200B_part67  0
chr12   +   1114883 1115083 MIR200B MIR200B_part68  0
chr12   +   1115083 1115283 MIR200B MIR200B_part69  0
chr12   +   1115283 1115483 MIR200B MIR200B_part70  0
chr12   +   1115483 1115683 MIR200B MIR200B_part71  0
chr12   +   1115683 1115883 MIR200B MIR200B_part72  0
chr12   +   1115883 1116083 MIR200B MIR200B_part73  0
chr12   +   1116083 1116283 MIR200B MIR200B_part74  0
chr12   +   1116283 1116483 MIR200B MIR200B_part75  0
chr12   +   1116483 1116683 MIR200B MIR200B_part76  0
chr12   +   1116683 1116883 MIR200B MIR200B_part77  0
chr12   +   1116883 1117083 MIR200B MIR200B_part78  0
chr12   +   1117083 1117283 MIR200B MIR200B_part79  0
chr12   +   1117283 1117483 MIR200B MIR200B_part80  0
chr12   +   1117483 1117683 MIR200B MIR200B_part81  0
chr12   +   1117683 1117883 MIR200B MIR200B_part82  0
chr12   +   1117883 1118083 MIR200B MIR200B_part83  0
chr12   +   1118083 1118283 MIR200B MIR200B_part84  0
chr12   +   1118283 1118483 MIR200B MIR200B_part85  0
chr12   +   1118483 1118683 MIR200B MIR200B_part86  0
chr12   +   1118683 1118883 MIR200B MIR200B_part87  0
chr12   +   1118883 1119083 MIR200B MIR200B_part88  0
chr12   +   1119083 1119283 MIR200B MIR200B_part89  0
chr12   +   1119283 1119483 MIR200B MIR200B_part90  0
chr12   +   1119483 1119683 MIR200B MIR200B_part91  0
chr12   +   1119683 1119883 MIR200B MIR200B_part92  0
chr12   +   1119883 1120083 MIR200B MIR200B_part93  0
chr12   +   1120083 1120283 MIR200B MIR200B_part94  0
chr12   +   1120283 1120483 MIR200B MIR200B_part95  0
chr12   +   1120483 1120683 MIR200B MIR200B_part96  0
chr12   +   1120683 1120883 MIR200B MIR200B_part97  0
chr12   +   1120883 1121083 MIR200B MIR200B_part98  0
chr12   +   1121083 1121283 MIR200B MIR200B_part99  0
chr12   +   1121283 1121483 MIR200B MIR200B_part100 0

请注意,您的预期输出不正确,因为文件中的两个数字chr1 1073566 1073366 1并不minor都落在major零件的同一范围内。


推荐阅读