Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何打开已编译的python文件(.pyc)_Python 3.x_Compilation - Fatal编程技术网

Python 3.x 如何打开已编译的python文件(.pyc)

Python 3.x 如何打开已编译的python文件(.pyc),python-3.x,compilation,Python 3.x,Compilation,最近我对计算机科学非常感兴趣,主要是计算机如何运行我们的代码。 在编译python程序之后,我试图查看代码的内容。如果我试着打开它,它不会打开,也不会做出奇怪的符号 我试着将代码发布在“pyc python extensions”上,但它们返回“我们不支持此文件格式”,并且在我的计算机上查看时,它看起来像随机符号 B J~]yãs d dl Z dd¨ZdS)Nc C s

最近我对计算机科学非常感兴趣,主要是计算机如何运行我们的代码。 在编译python程序之后,我试图查看代码的内容。如果我试着打开它,它不会打开,也不会做出奇怪的符号

我试着将代码发布在“pyc python extensions”上,但它们返回“我们不支持此文件格式”,并且在我的计算机上查看时,它看起来像随机符号

B

J~]yãs d dl Z dd¨ZdS)Nc C s
ƒq2W d}d krŽd}n(|d 我方在本次调查中的第九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九九发烧友(0-30)z3)高级(0-70)z4)专家(0-100)éz!选择一个有效的级别!选择一个定义的单位请输入一个数字Z大作业Z低数字…高数字…)打印输入数字随机随机随机

r)rÚs


编辑:网站没有显示它,但通过上面的代码,有很多“随机”的地方广场,loo喜欢'❏' 没有阴影。

查看.pyc文件内容的最简单方法是反汇编python函数

导入dis
def():
x=1
a=x
打印(a,x)
dis.dis(f)
输出应该是这样的

  2           0 LOAD_CONST               1 (1)
              2 STORE_FAST               0 (x)

  3           4 LOAD_FAST                0 (x)
              6 STORE_FAST               1 (a)

  4           8 LOAD_GLOBAL              0 (print)
             10 LOAD_FAST                1 (a)
             12 LOAD_FAST                0 (x)
             14 CALL_FUNCTION            2
             16 POP_TOP
             18 LOAD_CONST               0 (None)
             20 RETURN_VALUE

您在这里看到的每个操作(
LOAD\u CONST
STORE\u FAST
等)都有一个相关的操作码(操作码),也称为字节码。每个字节码都以二进制形式存储在.pyc文件中,以及常量、变量、函数等的“列表”

更多的是解释字节码,但如果你真的对它的工作原理感兴趣,网上有很多关于它们的好文章。与此同时,你可以检查一个

如果您已经理解并喜欢这件事,您可以尝试学习。

您检查了吗?
  2           0 LOAD_CONST               1 (1)
              2 STORE_FAST               0 (x)

  3           4 LOAD_FAST                0 (x)
              6 STORE_FAST               1 (a)

  4           8 LOAD_GLOBAL              0 (print)
             10 LOAD_FAST                1 (a)
             12 LOAD_FAST                0 (x)
             14 CALL_FUNCTION            2
             16 POP_TOP
             18 LOAD_CONST               0 (None)
             20 RETURN_VALUE