鱼C论坛

 找回密码
 立即注册
查看: 2469|回复: 16

[已解决]运行出现新文件夹

[复制链接]
发表于 2023-3-22 22:10:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
       在这里的测试题的第四题里,我按着小甲鱼的要求写了代码,运行正常,但是出现了个新文件夹__pycache__,里面就是ab两个程序,但是后缀便成了pyc。这是怎么回事?
最佳答案
2023-3-22 22:14:41
__pycache__ 文件夹是 Python 在运行程序时自动生成的。当你运行一个需要导入模块的 Python 程序时,Python 解释器会把模块的源代码(.py 文件)编译成字节码(.pyc 文件)。字节码是一种低级的、与平台无关的代码,用于提高程序运行速度。

Python 解释器会将这些 .pyc 文件保存在 __pycache__ 文件夹中,以便下次运行程序时直接加载,从而提高运行速度。

评分

参与人数 1贡献 +3 收起 理由
一点沙 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-22 22:10:34 | 显示全部楼层
大号帮忙传下图

评分

参与人数 1贡献 +3 收起 理由
一点沙 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:13:30 | 显示全部楼层

好的 屏幕截图 2023-03-22 221256.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:13:53 | 显示全部楼层
是不是不小心打成了a.pyc?,b.pyc?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:14:41 | 显示全部楼层    本楼为最佳答案   
__pycache__ 文件夹是 Python 在运行程序时自动生成的。当你运行一个需要导入模块的 Python 程序时,Python 解释器会把模块的源代码(.py 文件)编译成字节码(.pyc 文件)。字节码是一种低级的、与平台无关的代码,用于提高程序运行速度。

Python 解释器会将这些 .pyc 文件保存在 __pycache__ 文件夹中,以便下次运行程序时直接加载,从而提高运行速度。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:15:25 | 显示全部楼层
sfqxx 发表于 2023-3-22 22:13
是不是不小心打成了a.pyc?,b.pyc?

不是,你看主号的图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:16:10 | 显示全部楼层
isdkz 发表于 2023-3-22 22:14
__pycache__ 文件夹是 Python 在运行程序时自动生成的。当你运行一个需要导入模块的 Python 程序时,Python ...

谢谢。那后缀的c是不是表示c文件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:17:19 | 显示全部楼层
一点沙 发表于 2023-3-22 22:16
谢谢。那后缀的c是不是表示c文件?

不是,那个 c 表示 compile(编译)

编译后的字节码的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-22 22:18:11 | 显示全部楼层
isdkz 发表于 2023-3-22 22:17
不是,那个 c 表示 compile(编译)

编译后的字节码的意思

谢谢!

评分

参与人数 1鱼币 +5 贡献 +3 收起 理由
一点沙 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:20:26 | 显示全部楼层

不客气,你如果不希望它自动生成那个 __pycache__ 的话可以添加一个环境变量 PYTHONDONTWRITEBYTECODE ,把这个环境变量的值设为 1

不过不建议这么做,因为 __pycache__ 是用来提高程序运行效率的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:22:23 | 显示全部楼层
一点沙 发表于 2023-3-22 22:16
谢谢。那后缀的c是不是表示c文件?


使用 python -h 可以看到在运行的时候用 -B 也可以实现不生成 __pycache__ ,比如 python -B xxx.py

(base) D:\>python -h
usage: C:\Program Files\Python311\python.exe [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options (and corresponding environment variables):
-b     : issue warnings about str(bytes_instance), str(bytearray_instance)
         and comparing bytes/bytearray with str. (-bb: issue errors)
-B     : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
-c cmd : program passed in as string (terminates option list)
-d     : turn on parser debugging output (for experts only, only works on
         debug builds); also PYTHONDEBUG=x
-E     : ignore PYTHON* environment variables (such as PYTHONPATH)
-h     : print this help message and exit (also -? or --help)
-i     : inspect interactively after running script; forces a prompt even
         if stdin does not appear to be a terminal; also PYTHONINSPECT=x
-I     : isolate Python from the user's environment (implies -E and -s)
-m mod : run library module as a script (terminates option list)
-O     : remove assert and __debug__-dependent statements; add .opt-1 before
         .pyc extension; also PYTHONOPTIMIZE=x
-OO    : do -O changes and also discard docstrings; add .opt-2 before
         .pyc extension
-P     : don't prepend a potentially unsafe path to sys.path
-q     : don't print version and copyright messages on interactive startup
-s     : don't add user site directory to sys.path; also PYTHONNOUSERSITE
-S     : don't imply 'import site' on initialization
-u     : force the stdout and stderr streams to be unbuffered;
         this option has no effect on stdin; also PYTHONUNBUFFERED=x
-v     : verbose (trace import statements); also PYTHONVERBOSE=x
         can be supplied multiple times to increase verbosity
-V     : print the Python version number and exit (also --version)
         when given twice, print more information about the build
-W arg : warning control; arg is action:message:category:module:lineno
         also PYTHONWARNINGS=arg
-x     : skip first line of source, allowing use of non-Unix forms of #!cmd
-X opt : set implementation-specific option
--check-hash-based-pycs always|default|never:
         control how Python invalidates hash-based .pyc files
--help-env      : print help about Python environment variables and exit
--help-xoptions : print help about implementation-specific -X options and exit
--help-all      : print complete help information and exit
Arguments:
file   : program read from script file
-      : program read from stdin (default; interactive mode if a tty)
arg ...: arguments passed to program in sys.argv[1:]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-22 22:23:34 From FishC Mobile | 显示全部楼层
c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-23 07:17:54 | 显示全部楼层
isdkz 发表于 2023-3-22 22:22
使用 python -h 可以看到在运行的时候用 -B 也可以实现不生成 __pycache__ ,比如 python -B xxx.py

...

哦,懂了
p.s:你是不是在用gpt?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-23 09:26:39 | 显示全部楼层
一点沙 发表于 2023-3-23 07:17
哦,懂了
p.s:你是不是在用gpt?


这个不需要gpt,常识
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-23 10:03:49 | 显示全部楼层
isdkz 发表于 2023-3-23 09:26
这个不需要gpt,常识

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-23 18:59:33 | 显示全部楼层

??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-23 20:16:38 | 显示全部楼层

新鱼油传不了图,我就让主号传个图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 05:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表