首页
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
更多
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
Search
1
文档内容搜索哪家强? 15款文件搜索软件横向评测
13 阅读
2
常见系统部署(1)
11 阅读
3
makfile 知识汇总
8 阅读
4
欢迎使用 Typecho
5 阅读
5
打造Ventoy多功能多系统启动U盘
5 阅读
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
登录
Search
标签搜索
python
PyQT
systemverilog
Alist
Docker
cadence
sv
webdav
vscode
cpp
upf
ESL
TLM
浏览器
virtuoso
tsmc8rf
TSMC
CXL
PCIE
Yosys
bennyhe
累计撰写
46
篇文章
累计收到
8
条评论
首页
栏目
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
页面
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
搜索到
5
篇与
的结果
2025-06-09
Python 如何将PyQt脚本(.py)编译成独立的可执行文件在Windows(.exe)和Linux上
Python 如何将PyQt脚本(.py)编译成独立的可执行文件在Windows(.exe)和Linux上在Windows系统上编译PyQt脚本为可执行文件在Windows系统上,我们可以使用PyInstaller这个工具来编译PyQt脚本为可执行文件。PyInstaller是一个自包含(stand-alone)的Python应用程序构建打包工具,它能够将Python脚本及其所依赖的库打包成一个独立的可执行文件。首先,我们需要安装PyInstaller。可以使用以下命令在命令行中安装:pip install pyinstaller国内的源:所以,我决定整合一哈国内镜像源的PyInstaller模块代码,方便以后自己复制使用pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller安装完成后,我们可以使用以下命令将PyQt脚本编译成可执行文件:pyinstaller --onefile YourScript.py其中,”YourScript.py”是你要编译的PyQt脚本的文件名。编译完成后,会在当前目录下生成一个可执行文件。在Linux系统上编译PyQt脚本为可执行文件在Linux系统上,我们可以使用PyInstaller或者cx_Freeze这两个工具来编译PyQt脚本为可执行文件。这两个工具的用法类似,在这里我们以PyInstaller为例进行介绍。首先,我们同样需要先安装PyInstaller。可以使用以下命令在命令行中安装:pip install pyinstaller安装完成后,我们可以使用以下命令将PyQt脚本编译成可执行文件:pyinstaller --onefile YourScript.py其中,”YourScript.py”是你要编译的PyQt脚本的文件名。编译完成后,同样会在当前目录下生成一个可执行文件。其他注意事项在编译PyQt脚本为可执行文件时,需要注意以下几点:确保你的脚本中所有依赖的库都已经安装。如果你的脚本中有使用到其他的资源文件,如图片、字体等,需要将这些资源文件一同放置在同一个目录下,以便可执行文件正确加载。在编译可执行文件时,PyInstaller或cx_Freeze会将所依赖的库一同打包进可执行文件中,因此可执行文件可能会比较大。如果想减小可执行文件的大小,可以尝试使用--noconsole参数去掉控制台的输出(仅限Windows系统),或者使用--onefile参数生成单个可执行文件。总结通过本文我们了解了如何将PyQt脚本编译成独立的可执行文件,在Windows和Linux系统上都有相应的工具可以使用。在实际开发过程中,我们可以根据自己的实际需求选择合适的工具来进行编译和打包。使用PyInstaller或cx_Freeze等工具,我们可以方便地将PyQt程序转化为可执行文件,并且在其他平台上进行部署和分发。这将极大地方便用户的使用,同时保护了源码的安全性。希望本文可以对你在编译PyQt脚本方面有所帮助。
2025年06月09日
3 阅读
0 评论
0 点赞
2025-06-06
Python中 if __name__==详细解析
引言学过Java、C、C++的程序员应该都知道,每次开启一个程序,都必须写一个主函数作为程序的入口,也就是我们常说的main函数。如下所示, main()就是Java中的一个main函数。public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); } }与Java、C、C++等几种语言不同的是,Python是一种解释型脚本语言,在执行之前不同要将所有代码先编译成中间代码,Python程序运行时是从模块顶行开始,逐行进行翻译执行,所以,最顶层(没有被缩进)的代码都会被执行,所以Python中并不需要一个统一的main()作为程序的入口。在某种意义上讲,“if __name__==’__main__:”也像是一个标志,象征着Java等语言中的程序主入口,告诉其他程序员,代码入口在此——这是“if __name__==’__main__:”这条代码的意义之一。__name__的理解1.1 为什么使用__name__属性?Python解释器在导入模块时,会将模块中没有缩进的代码全部执行一遍(模块就是一个独立的Python文件)。开发人员通常会在模块下方增加一些测试代码,为了避免这些测试代码在模块被导入后执行,可以利用__name__属性。1.2 __name__属性。__name__属性是Python的一个内置属性,记录了一个字符串。若是在当前文件,__name__ 是__main__。在hello文件中打印本文件的__name__属性值,显示的是__main__若是导入的文件,__name__是模块名。test文件导入hello模块,在test文件中打印出hello模块的__name__属性值,显示的是hello模块的模块名。因此__name__ == '__main__' 就表示在当前文件中,可以在if name == '__main__':条件下写入测试代码,如此可以避免测试代码在模块被导入后执行。模块导入我们知道,当我们把模块A中的代码在模块B中进行import A时,只要B模块代码运行到该import语句,模块A的代码会被执行。模块A:# 模块A a = 100 print('你好,我是模块A……') print(a) 模块B: # 模块B from package01 import A b = 200 print('你好,我是模块B……') print(b)运行模块B时,输出结果如下:你好,我是模块A……100你好,我是模块B……200如果在模块A中,我们有部分的代码不想在被导入到B时直接被运行,但在直接运行A时可直接运行,那该怎么做呢?那就可以用到“if __name__==’__main__:”这行代码了,我们队上面用到的A模块代码进行修改:A模块代码修改为:# 模块A a = 100 print('你好,我是模块A……') if __name__=='__main__': print(a)B模块不做修改,直接执行B模块,输出结果如下:你好,我是模块A……你好,我是模块B……200看到了吗,A模块中的a的值就没有再被输出了。所以,当你要导入某个模块,但又不想改模块的部分代码被直接执行,那就可以这一部分代码放在“if __name__=='__main__':”内部。3. “__name__”与“__main__”看到现在也许心中还是疑惑,那么现在我们来说一说“if__name__=='__main__':”的原理。“__name__”是Python的内置变量,用于指代当前模块。我们修改上面用到的A模块和B模块,在模块中分别输出模块的名称:模块A:# 模块A print('你好,我是模块A……') print('模块A中__name__的值:{}'.format(__name__)) print('-------------------------') 模块B: # 模块B from package01 import A print('你好,我是模块B……') print('模块B中__name__的值:{}'.format(__name__))执行A模块时,输出结果:你好,我是模块A……模块A中__name__的值:__main__-------------------------执行B模块时,输出结果:你好,我是模块A……模块A中__name__的值:package01.A-------------------------你好,我是模块B……模块B中__name__的值:__main__发现神奇之处了吗?当哪个模块被直接执行时,该模块“__name__”的值就是“__main__”,当被导入另一模块时,“__name__”的值就是模块的真实名称。用一个类比来解释一下:记得小时候要轮流打算教室,轮到自己的时候(模块被直接执行的时候),我们会说今天是“我”(__main__)值日,称呼其他人时,我们就会直接喊他们的名字。所以,“__main__”就相当于当事人,或者说第一人称的“我”。所以,当运行“if __name__=='__main__':”语句时,如果当前模块时被直接执行,__name__的值就是__main__,条件判断的结果为True,“if __name__=='__main__':”下面的代码块就会被执行。1参考.^Python中“if __name__=='__main__':”理解与总结 https://www.cnblogs.com/chenhuabin/p/10118199.html.^if name == '__main__': https://www.cnblogs.com/wanao/p/13098783.html
2025年06月06日
1 阅读
0 评论
0 点赞
2025-06-06
VSCode搭建Python开发环境
文章所需的部署环境为Windows10 64位.这篇文章将演示如何搭建一个VSCode编写Python代码的环境。第一步. 安装Python环境(如果已经安装过的可以略过)下载地址:https://www.python.org/downloads/www.python.org/downloads/目前Python最新版本是3.8.5, 但是该版本还处于BUGFIX阶段,所以我们使用稳定的最新版本3.7.8。python2.7 已经在2020-01-01停止维护,如果还在使用Python2的要及时更新哦点击Download后,我们在新页面选择64位安装程序如果下载速度慢的话可以使用代理下载下来打开后,根据图示安装下一步.Documentation:python文档,建议勾上.pip: python安装其他库的工具,必勾.tcl/tk and IDLE: 安装tkinter库和IDLE开发环境, IDLE就是个编辑器,tkinter以后也可以装,这里不推荐勾选.Python test suite:Python标准库测试测试套装,不是必须下一步安装路径自行调整,其余按图示即可。安装成功测试是否有效,win+r 输入cmd 打开控制台,输入python -V,输出了安装的python版本即成功!如果没有输出或者出错,可能是安装时没有勾选添加python安装路径到环境变量,百度一下如何添加即可。VSCode配置Python开发环境接下来就是配置VSCode了,首先打开VSCode, 搜索插件Python并安装。或者直接打开某个.py文件,VSCode右下角将会自动提示你安装。安装完毕后,VSCode应该会出现这个提示需要你选择一个Python的解析器,点击Select Python Interpreter不出意外的话,你已经将Python路径添加到环境变量,于是VSCode可以自动识别到,图中即是你安装的Python解析器的位置了,选择即可。如果VSCode没有提示你选择,那你可以使用ctrl+shift+p, 输入Python Select Python Interpreter 即可。这一步做完后,VSCode可能还会出现这个提示这是VSCode需要你选择一个代码检查插件,你可以直接点击Install来安装pylint,也可以点击Select Linter选择其他的代码检查插件。这里我选择点击Select Linter。或者直接在setting 中输入interpret, 填写pythona安装后的路径VSCode的Python插件默认是使用pylint作为代码检查插件,我更习惯使用pycodestyle。选择后VSCode应该会提示你该插件未安装,点击Install安装即可。python会调用pip去安装,如下图所示即是安装成功了。黄字WARNING是提示pip版本可更新,无大碍。到这里,你已经可以使用VSCode编写python代码了,来试试看!右键可以点击出许多Python插件提供的功能,试试运行该python文件于终端。或者在终端输入 python hello.py 来运行hello.py文件。或者在python文件点击右键,选择“Run Python File in Terminal”成功输出( ̄︶ ̄*))。可以看到Python插件还提供了很多的功能, 比如选中函数后跳转到其实现。
2025年06月06日
0 阅读
0 评论
0 点赞
2025-05-29
python pandas excel操作
1 获取一个excel文档的所有的sheet方法一:xls = pd.ExcelFile(file_name) sheets = xls.sheet_names num_sheets = len(sheets) print("Excel file contains", num_sheets, "sheets.") print(sheets)打印接轨:Excel file contains 2 sheets.['history', 'test_feature']方法二:sheet=pd.read_excel(file_name,sheet_name=None) print(list(sheet.keys())) for j in sheet.keys(): print(j) 打印结果:['history', 'test_feature']historytest_feature2 读取 excel 表格之读取指定的子表 sheetpandas读取excel使用 read_excel() 函数import pandas as pd df = pd.read_excel('goods_base.xlsx') . sheet_name 参数, 指定读取 sheet 子表 # 单个sheet df = pd.read_excel('sheet_name.xlsx', sheet_name=2) df = pd.read_excel('sheet_name.xlsx', sheet_name='3月') # 多个sheet, 返回字典 df_dict = pd.read_excel('sheet_name.xlsx', sheet_name=[1, '3月']) # 全部sheet, 返回字典 df_dict = pd.read_excel('sheet_name.xlsx', sheet_name=None 3 pandas逐个遍历sheetimport pandas as pd f = pd.ExcelFile('./data.xlsx') for i in f.sheet_names: d = pd.read_excel('./data.xlsx', sheetname=i) print(d)4 读最大的取行列数 import pandas as pd df = pd.read_excel('C:/Users/enuit/Desktop/data_test.xlsx') # 行数 (不包含表头,且一下均如此) print(len(df.index.values)) # 行索引 print(df.index.values) # 列数 print(len(df.columns.values)) # 列索引 print(df.columns.values)结果:5 读取指定行的单元格内容excel 原始的内容比如excel 读出的内容design 的内容df = pd.read_excel(file_name, sheet_name="history") print(df.loc[1,"demo"]) #或者 print(df.iloc[1,1])都是返回designer这个内容。6根据条件筛选单元格# C:\Users\lenovo\Desktop\总结\Python # 读取 Excel 文件并进行筛选 import pandas as pd # 设置列对齐 pd.set_option("display.unicode.ambiguous_as_wide",True) pd.set_option("display.unicode.east_asian_width",True) # 读取工号姓名时段交易额,使用默认索引 dataframe = pd.read_excel(r'C:\Users\lenovo\Desktop\总结\Python\超市营业额.xlsx',usecols = ['工号','姓名','时段','交易额']) # 打印前十行数据 dataframe[:10] 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 2 1003 王五 9:00-14:00 800 3 1004 赵六 14:00-21:00 1100 4 1005 周七 9:00-14:00 600 5 1006 钱八 14:00-21:00 700 6 1006 钱八 9:00-14:00 850 7 1001 张三 14:00-21:00 600 8 1001 张三 9:00-14:00 1300 9 1002 李四 14:00-21:00 1500 ''' # 跳过 1 2 4 行,以第一列姓名为索引 dataframe2 = pd.read_excel(r'C:\Users\lenovo\Desktop\总结\Python\超市营业额.xlsx', skiprows = [1,2,4], index_col = 1) '''注:张三李四赵六的第一条数据跳过 工号 日期 时段 交易额 柜台 姓名 王五 1003 20190301 9:00-14:00 800 食品 周七 1005 20190301 9:00-14:00 600 日用品 钱八 1006 20190301 14:00-21:00 700 日用品 钱八 1006 20190301 9:00-14:00 850 蔬菜水果 张三 1001 20190302 14:00-21:00 600 蔬菜水果 ''' # 筛选符合特定条件的数据 # 读取超市营业额数据 dataframe = pd.read_excel(r'C:\Users\lenovo\Desktop\总结\Python\超市营业额.xlsx') # 查看 5 到 10 的数据 dataframe[5:11] ''' 工号 姓名 日期 时段 交易额 柜台 5 1006 钱八 20190301 14:00-21:00 700 日用品 6 1006 钱八 20190301 9:00-14:00 850 蔬菜水果 7 1001 张三 20190302 14:00-21:00 600 蔬菜水果 8 1001 张三 20190302 9:00-14:00 1300 化妆品 9 1002 李四 20190302 14:00-21:00 1500 化妆品 10 1003 王五 20190302 9:00-14:00 1000 食品 ''' # 查看第六行的数据 dataframe.iloc[5] ''' 工号 1006 姓名 钱八 时段 14:00-21:00 交易额 700 Name: 5, dtype: object ''' dataframe[:5] ''' 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 2 1003 王五 9:00-14:00 800 3 1004 赵六 14:00-21:00 1100 4 1005 周七 9:00-14:00 600 ''' # 查看第 1 3 4 行的数据 dataframe.iloc[[0,2,3],:] ''' 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 2 1003 王五 9:00-14:00 800 3 1004 赵六 14:00-21:00 1100 ''' # 查看第 1 3 4 行的第 1 2 列 dataframe.iloc[[0,2,3],[0,1]] ''' 工号 姓名 0 1001 张三 2 1003 王五 3 1004 赵六 ''' # 查看前五行指定,姓名、时段和交易额的数据 dataframe[['姓名','时段','交易额']][:5] ''' 姓名 时段 交易额 0 张三 9:00-14:00 2000 1 李四 14:00-21:00 1800 2 王五 9:00-14:00 800 3 赵六 14:00-21:00 1100 4 周七 9:00-14:00 600 ''' dataframe[:5][['姓名','时段','交易额']] ''' 姓名 时段 交易额 0 张三 9:00-14:00 2000 1 李四 14:00-21:00 1800 2 王五 9:00-14:00 800 3 赵六 14:00-21:00 1100 4 周七 9:00-14:00 600 ''' # 查看第 2 4 5 行 姓名,交易额 数据 loc 函数 dataframe.loc[[1,3,4],['姓名','交易额']] ''' 姓名 交易额 1 李四 1800 3 赵六 1100 4 周七 600 ''' # 查看第四行的姓名数据 dataframe.at[3,'姓名'] # '赵六' # 查看交易额大于 1700 的数据 dataframe[dataframe['交易额'] > 1700] ''' 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 ''' # 查看交易额总和 dataframe.sum() ''' 工号 17055 姓名 张三李四王五赵六周七钱八钱八张三张三李四王五赵六周七钱八李四王五张三... 时段 9:00-14:0014:00-21:009:00-14:0014:00-21:009:00... 交易额 17410 dtype: object ''' # 某一时段的交易总和 dataframe[dataframe['时段'] == '14:00-21:00']['交易额'].sum() # 8300 # 查看张三在下午14:00之后的交易情况 dataframe[(dataframe.姓名 == '张三') & (dataframe.时段 == '14:00-21:00')][:10] ''' 工号 姓名 时段 交易额 7 1001 张三 14:00-21:00 600 ''' # 查看日用品的销售总额 # dataframe[dataframe['柜台'] == '日用品']['交易额'].sum() # 查看张三总共的交易额 dataframe[dataframe['姓名'].isin(['张三'])]['交易额'].sum() # 5200 # 查看交易额在 1500~3000 之间的记录 dataframe[dataframe['交易额'].between(1500,3000)] ''' 工号 姓名 时段 交易额 0 1001 张三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 9 1002 李四 14:00-21:00 1500 '''
2025年05月29日
1 阅读
0 评论
0 点赞
2025-05-27
python零碎知识汇总
https://p1.ssl.qhimg.com/t010d1433ef39d6d0cf.jpg只获取当前目录下,剔除文件,只要文件夹名称import os dbtype_list = os.listdir(“sql_dir_war”) for dbtype in dbtype_list: if os.path.isfile(os.path.join(sql_dir_war,dbtype)): dbtype_list.remove(dbtype)sql_dir_war 是当前路径下文件夹的名字,如果直接是当前路径下可以输入dbtype_list = os.listdir()python实现在某本中某个关键词前插入一行def add_line_above(src_keyword,des_keyword,des_dir): logging.debug("\033[1;34m add_line_above \033[0m") for line in fileinput.input(des_dir,inplace=1): if src_keyword in line: print(des_keyword) print(line,end="")python实现在某本中某个关键词后插一行def add_line_below(src_keyword,des_keyword,des_dir): logging.debug("\033[1;34m add_line_below \033[0m") for line in fileinput.input(des_dir,inplace=1): print(line,end="") if src_keyword in line: print(des_keyword) python实现在某本中删除某两个个关键词之间的内容def delete_segment_exclude(src_keyword_begin,src_keyword_end,src_dir): line_begin = 0 line_end = 0 for line in fileinput.input(src_dir,inplace=0): if src_keyword_begin in line: line_begin = fileinput.filelineno() if src_keyword_end in line: line_end = fileinput.filelineno() temp_file=open(src_dir+"_temp",'w+') for line in fileinput.input(src_dir,inplace=0): cur_line = fileinput.filelineno() if(cur_line>line_begin)&(cur_line<line_end): continue else: temp_file.write(line) temp_file.close() shutil.move(src_dir+"_temp",src_dir)
2025年05月27日
3 阅读
0 评论
0 点赞