介绍:
编译py文件为pyc,并且移除编译生成的文件夹和编译前的py文件

请见代码库:
点击此处获取一键编译脚本[gitee]

使用说明:
1.将需要编译的项目复制出来,放到compile_dir_and_changename.py所在的文件夹下。(重要:因为编译后会移除PY文件)
2.双击compile_dir_and_changename.py文件。双击后有二次确认。输入Y/y,回车后完成编译

其他说明:
1.会编译所在文件夹下所有的子文件夹。只编译和编译py文件

编译代码展示:

#!/usr/bin/python3import compileall
import os
import shutil'''
os.getcwd()获取当前工作目录
splitext() 分离文件名和扩展名,返回一个数组。(运行的文件排除)
os.listdir:参数为文件夹路径,可以返回文件夹下的所有子文件夹、文件名称。
os.walk:参数为文件夹路径,返回3个内容:[绝对路径、子文件夹、文件名]。 此方法可以遍历文件夹下的所有文件、子文件及内的所有文件:子文件夹如果为空,那么第二个数组为空os.path.isfile(path);
os.path.isdir(path);复制文件
shutil.copy(文件路径,文件夹路径)
'''def get_data():walk_list = list(os.walk(os.getcwd()))# key为当前文件夹下所有的文件夹的路径(包含所在的根目录),value为对应的文件data = {}for _absolute_path, folder_name, _file_name in walk_list:data[_absolute_path] = _file_namereturn datadef rename():file = get_data()for absolute_path, file_names in file.items():# 筛选__pycache__文件夹if absolute_path.split('\\')[-1] == '__pycache__':# 遍历文件夹下的所有文件for file_name in file_names:# 拆分文件夹名file_items = file_name.split('.')# 确保是pyc文件if file_items[-1] == 'pyc':os.rename(absolute_path + '\\' + file_name,absolute_path + '\\' + file_items[0] + '.' + file_items[-1])# 复制pyc文件时, 删除多余的py文件和编译生成的__pycache__文件夹
def copy_pyc():file = get_data()for absolute_path, file_names in file.items():# 筛选__pycache__文件夹if absolute_path.split('\\')[-1] == '__pycache__':# 遍历文件夹下的所有文件for file_name in file_names:# 拆分文件夹名file_items = file_name.split('.')# 确保是pyc文件if file_items[-1] == 'pyc':# 复制到上级文件夹shutil.copy(absolute_path + f'\\{file_name}', absolute_path + '\\..')os.remove(absolute_path + f'\\{file_name}')os.rmdir(absolute_path)# 删除.py文件# 获取pyc文件夹对应的py文件夹path_py = absolute_path[:len(absolute_path)-len('\\__pycache__')]# 获取文件夹中的文件列表并遍历list_py = file[path_py]for py in list_py:# 拆分文件夹名py_items = py.split('.')# 确保是py文件if py_items[-1] == 'py':os.remove(path_py + f'\\{py}')if __name__ == '__main__':for name in os.listdir():if os.path.isdir(f'.\\{name}') and name[0] != '.':print(f'开始编译[.\\{name}]下的项目...')confirm = input('此操作会删除py文件,确认请输入Y或y后回车,输入其他均为取消操作:')if confirm in ['Y', 'y']:compileall.compile_dir(f'.\\{name}')  # 编译当前文件夹中的py文件rename()else:print(f'取消.\\{name}]编译操作')break# 先复制pyc文件,然后删除.py的文件和__pycache__(根据__pycache__文件夹的上一页)copy_pyc()

另外还提供了移除__pycache__文件夹的脚本:

import os
import shutildef get_data():walk_list = list(os.walk(os.getcwd()))# key为当前文件夹下所有的文件夹的路径(包含所在的根目录),value为对应的文件data = {}for _absolute_path, folder_name, _file_name in walk_list:data[_absolute_path] = _file_namereturn dataif __name__ == '__main__':file = get_data()for absolute_path, file_names in file.items():# 筛选__pycache__文件夹if absolute_path.split('\\')[-1] == '__pycache__':# 遍历文件夹下的所有文件for file_name in file_names:# 拆分文件夹名file_items = file_name.split('.')# 确保是pyc文件if file_items[-1] == 'pyc':os.remove(absolute_path + f'\\{file_name}')os.rmdir(absolute_path)

The End…

Python代码编译,py文件编译为pyc文件相关推荐

  1. 什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件

    文章目录 1 什么是pyc文件 1.1 什么是pyc文件 1.2 pyc文件是怎么生成的,有什么好处 2 把python的py文件编译成pyc文件 2.1 使用python内置库py_compile把 ...

  2. python执行pyc文件_Python 编译:code对象 与 pyc文件

    运行程序 当在shell中敲入python xx.py运行 Python 程序时,就是激活了 Python 解释器. Python 解释器并不会立即运行程序,而是会对 Python 程序的源代码进行编 ...

  3. python py生成及调用pyc文件

    本文仅供学习交流使用,如侵立删!demo下载见文末 python py文件中调用pyc文件 1.生成pyc文件 # 目录下所有py文件生成pyc import compileall compileal ...

  4. py文件转换成pyc文件

    py文件转换成pyc文件 pyc介绍 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高. 而且pyc是一种跨平台的字节 ...

  5. linux下执行python脚本并传入参数_实现在Java中执行python代码或py脚本(可传参数)...

    写在前面 最近用Java写服务端程序时,遇到这样一个需求:需要把用python写的机器学习算法部署到服务器上,然后Java执行py脚本,并且取得算法执行的结果.在网上找了很久,有些跑不通,有些是基于w ...

  6. so文件反编译为python代码_【反编译系列】四、反编译so文件(IDA_Pro)

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 安卓应用程序的开发语言是java,但是由于java层的代码很容易被反编译,而反编译c/c++程序的难度比较大,所以现在很多安卓应用程 ...

  7. python exe是什么_[Python] [转] python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)...

    Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序.如下图所示: 它们到底有什么区别和联系呢? 概括说明一 ...

  8. python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)

    Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序.如下图所示: 它们到底有什么区别和联系呢? 概括说明一 ...

  9. python运行pyc和pyo文件_python生成pyc文件和pyo文件

    本文原创,版权属作者个人所有,如需转载请联系作者本人.Q&微:155122733 ------------------------------------------------------- ...

  10. 【深度学习之路记录02】python代码批量修改Labelme标注的json文件(删除标签、修改标签名)

    代码参考:https://blog.csdn.net/qq_44442727/article/details/112785978 创建自己的数据集时,经常需要一些调整,比如说修改某一批文件中已经标好的 ...

最新文章

  1. 小米手机60帧录屏_专业录屏工具,你们一定要收下
  2. 如果你没有考上985,没有考上211……
  3. pandas 第一行_Pandas进阶,从0到100你还差这篇文章!
  4. c++ ptree判断是否存在节点_CTreeCtrl 查找 等于某值 的节点,并设置为高亮
  5. WampServer
  6. 为什么说DeFi将催生银行业杀手级应用?
  7. excel工具箱_Excel工具箱15.54安装教程
  8. 图文上下切换代码_Java核心知识 多线程并发 线程上下文切换(二十一)
  9. iOS开发之企业级账号的使用注意的坑
  10. chainmaker 区块中最大交易数 block_tx_capacity设置 区块大小 区块容量
  11. 20181030函数2
  12. ESS And 迅雷5 让我不能上网
  13. java学生信息管理系统代码_java学生信息管理系统源代码
  14. Linux的使用注意事项
  15. GBASE监控工具简介
  16. YOLO v2详细解读
  17. 计算机英语期末论文格式,计算机英文论文大纲格式 计算机英文论文大纲如何写...
  18. Unity中创建地形和给地形贴图的学习方法
  19. Android绘制跟随路径移动的圆圈
  20. 循环神经网络-高级篇RNN Classifier

热门文章

  1. Python 读书笔记4 反脆弱:从不确定中获益
  2. linux系统键盘被锁定,在Linux下锁住键盘和鼠标而不锁屏
  3. Acer Aspire sw5-12安装系统(包含所有资源)|Acer sw系列装系统
  4. 金融机构的反洗钱(AML)合规工作和系统建设
  5. 让开发者成为决定性力量,华为开发者英雄汇圆满落幕
  6. Thymeleaf (三) ---------Thymeleaf 属性
  7. 30条实用信息教你读懂电影版本
  8. 程序员圈 内的 鄙视链
  9. STC15W4K32S4单片机ADC应用实现
  10. Java中方法调用完之后,原来的数改变吗?