import struct PYTHON_MAGIC = { 20121: (1, 5), 50428: (1, 6),
50823: (2, 0), 60202: (2, 1), 60717: (2, 2), 62011: (2, 3), 62021: (2, 3), 62041: (2, 4), 62051: (2, 4), 62061: (2, 4), 62071: (2, 5), 62081: (2, 5), 62091: (2, 5), 62092: (2, 5), 62101: (2, 5), 62111: (2, 5), 62121: (2, 5), 62131: (2, 5), 62151: (2, 6), 62161: (2, 6), 62171: (2, 7), 62181: (2, 7), 62191: (2, 7), 62201: (2, 7), 62211: (2, 7),
3000: (3, 0), 3010: (3, 0), 3020: (3, 0), 3030: (3, 0), 3040: (3, 0), 3050: (3, 0), 3060: (3, 0), 3061: (3, 0), 3071: (3, 0), 3081: (3, 0), 3091: (3, 0), 3101: (3, 0), 3103: (3, 0), 3111: (3, 0), 3131: (3, 0),
3141: (3, 1), 3151: (3, 1),
3160: (3, 2), 3170: (3, 2), 3180: (3, 2),
3190: (3, 3), 3200: (3, 3), 3220: (3, 3), 3230: (3, 3),
3250: (3, 4), 3260: (3, 4), 3270: (3, 4), 3280: (3, 4), 3290: (3, 4), 3300: (3, 4), 3310: (3, 4),
3320: (3, 5), 3330: (3, 5), 3340: (3, 5), 3350: (3, 5), 3351: (3, 5),
3360: (3, 6), 3361: (3, 6), 3370: (3, 6), 3371: (3, 6), 3372: (3, 6), 3373: (3, 6), 3375: (3, 6), 3376: (3, 6), 3377: (3, 6), 3378: (3, 6), 3379: (3, 6),
3390: (3, 7), 3391: (3, 7), 3392: (3, 7), 3393: (3, 7), 3394: (3, 7),
3400: (3, 8), 3401: (3, 8), 3410: (3, 8), 3411: (3, 8), 3412: (3, 8), 3413: (3, 8),
3420: (3, 9), 3421: (3, 9), 3422: (3, 9), 3423: (3, 9), 3424: (3, 9), 3425: (3, 9),
3430: (3, 10), 3431: (3, 10), 3432: (3, 10), 3433: (3, 10), 3434: (3, 10), 3435: (3, 10), 3436: (3, 10), 3437: (3, 10), 3438: (3, 10), 3439: (3, 10),
3450: (3, 11), 3451: (3, 11), 3452: (3, 11), 3453: (3, 11), 3454: (3, 11), 3455: (3, 11), 3456: (3, 11), 3457: (3, 11), 3458: (3, 11), 3459: (3, 11), 3460: (3, 11), 3461: (3, 11), 3462: (3, 11), 3463: (3, 11), 3464: (3, 11), 3465: (3, 11), 3466: (3, 11), 3467: (3, 11), 3468: (3, 11), 3469: (3, 11), 3470: (3, 11), 3471: (3, 11), 3472: (3, 11), 3473: (3, 11), 3474: (3, 11), 3475: (3, 11), 3476: (3, 11), 3477: (3, 11), 3478: (3, 11), 3479: (3, 11), 3480: (3, 11), 3481: (3, 11), 3482: (3, 11), 3483: (3, 11), 3484: (3, 11), 3485: (3, 11), 3486: (3, 11), 3487: (3, 11), 3488: (3, 11), 3489: (3, 11), 3490: (3, 11), 3491: (3, 11), 3492: (3, 11), 3493: (3, 11), 3494: (3, 11), 3495: (3, 11),
3500: (3, 12), 3501: (3, 12), 3502: (3, 12), 3503: (3, 12), 3504: (3, 12), 3505: (3, 12), 3506: (3, 12), 3507: (3, 12), 3508: (3, 12), 3509: (3, 12), 3510: (3, 12), 3511: (3, 12), 3512: (3, 12), 3513: (3, 12), 3514: (3, 12), 3515: (3, 12), 3516: (3, 12), 3517: (3, 12), 3518: (3, 12), 3519: (3, 12), 3520: (3, 12), 3521: (3, 12), 3522: (3, 12), 3523: (3, 12), 3524: (3, 12), 3525: (3, 12), 3526: (3, 12), 3527: (3, 12), 3528: (3, 12), 3529: (3, 12), 3530: (3, 12), 3531: (3, 12), } def magic_word_to_version(magic_word): if not isinstance(magic_word, int): magic_word = struct.unpack("<H", magic_word)[0] return PYTHON_MAGIC[magic_word] def pyc_file_to_magic_word(pyc_file): with open(pyc_file, 'rb') as f: magic = f.read(4) magic_word = int.from_bytes(magic[:2], 'little') return magic_word file = input("请输入文件路径:") magic_number = pyc_file_to_magic_word(file) python_version = magic_word_to_version(magic_number) print(python_version)
|