Python语言很容易上手模块。比如你编写了一个模块my_libpy,只需在调用这个模块的程序中加入一行import my_lib即可。
这样设计的好处是,初学者能够非常方便地执行命令。但是对攻击者来说,这等于是为恶意程序大开后门。
尤其是一些初学者将网上的Python软件包、代码下载的到本地~/Downloads文件夹后,就直接在此路径下运行python命令,这样做会给电脑带来极大的隐患。
别再图方便了
为何这样做会有危险?首先,我们要了解Python程序安全运行需要满足的三个条件:
系统路径上的每个条目都处于安全的位置;
“主脚本”所在的目录始终位于系统路径中;
若python命令使用-c和-m选项,调用程序的目录也必须是安全的。
如果你运行的是正确安装的Python,那么Python安装目录和virtualenv之外唯一会自动添加到系统路径的位置,就是当前主程序的安装目录。
这就是安全隐患的来源,下面用一个实例告诉你为什么。
如果你把pip安装在/usr/bin文件夹下,并运行pip命令。由于/usr/bin是系统路径,因此这是一个非常安全的地方。
但是,有些人并不喜欢直接使用pip,而是更喜欢调用/path/to/python -m pip。
这样做的好处是可以避免环境变量$PATH设置的复杂性,而且对于Windows用户来说,也可以避免处理安装各种exe脚本和文档。
所以问题就来了,如果你的下载文件中有一个叫做pippy的文件,那么你将它将取代系统自带的pip,接管你的程序。
下载文件夹并不安全
比如你不是从PyPI,而是直接从网上直接下载了一个Python wheel文件。你很自然地输入以下命令来安装它:
~$ cd Downloads
~/Downloads$ python -m pip install /totally-legit-packagewhl
这似乎是一件很合理的事情。但你不知道的是,这么 *** 作很有可能访问带有XSS JavaScript的站点,并将带有恶意软件的的pippy到下载文件夹中。
下面是一个恶意攻击软件的演示实例:
~$ mkdir attacker_dir
~$ cd attacker_dir
~/attacker_dir$ echo 'print("lol ur pwnt")' > pi
程序一定会运行到clean()函数,但是,如果你代码写的多,你就应该知道,滥用tryexcept会让你非常痛苦。例如它突然给你打印一个运行异常: 1。你根本不知道是哪里出了问题,也不知道具体出了什么问题。为了找到问题,你必须让程序把错误爆出来。但这样一来,clean()又不能正常运行了。Python退出时强制运行一段代码
有什么办法,既能让程序报错,又能在报错已经还能运行clean()呢
这个时候,我们就可以使用Python自带的atexit这个模块了。它的使用方法非常简单:
import atexit
@atexitregister
def clean():
print('清理环境相关的代码')
setup()
test()
这样一来,我们不需要显式调用clean函数了。无论程序正常结束,还是程序异常报错,clean函数里面的内容总会执行。
关掉 sublime text2
使用快捷键或者哪些按钮,停止该程序,就像调试一样,如下图
Cancel Build 快捷键 Ctrl+Break ,试一下行不行得通,我试过是可以的
采用的是main函数对主窗口运行程序完毕自动关闭的命令:
from tkinter import def main():
root = Tk()
b = Button(root, text='退出', command=rootquit)
bpack()
mainloop()if __name__ == '__main__':
main()
扩展资料:
main函数的应用:
程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合思考方式而生成的而非必定的模式。有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。
模块化程序设计方法是把整个程序划分为若干功能较为单一的程序模块,然后分别予以实现,最后再把所有的程序模块像搭积木一样装配起来。
利用函数可以实现程序的模块化,可以大大地减轻编码工作量。在函数内部或复合语句块内部定义的 auto 类型变量称为局部变量。
局部变量的作用域从该局部变量定义的位置开始到本函数或复合语句结束处。局部变量的生存期较短暂。当局部变量所在的函数被调用时,局部变量内存空间被分配,函数调用结束后,局部变量内存空间被释放。
函数的形参和实参均属于局部变量,调用函数时,形参内存空间被分配。函数调用结束后,形参内存空间被释放。C语言函数参数传递可分为三种情况:简单变量作为函数参数、数组名作为函数参数以及指针作为函数参数。
参考资料来源:百度百科-main函数
python代码写好了运行的方法:首先文件地址栏输入cmd,敲入回车;然后在对应的目录下输入python hellopy即可运行程序。
相关学习推荐:python教程
python代码写好了运行的方法:
1、如下图所示,有一个hellopy的文件
2、我们直接在上面的文件地址栏输入cmd,敲入回车
3、可以看到,直接就定位到对应的目录下
4、我们输入python hellopy,可以运行程序
5、当然,也可以直接运行hellopy
以上就是小编分享的关于python代码写好了怎么运行的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
首先终止该进程。
随后单击“开始”-“运行”,输入“servicesmsc”并回车;
看看有没有可疑服务。如果有,右击它并选“停止”。然后再次右击,选择“属性”,在“启动类型”下拉列表中选择“已禁用”,单击“确定”。
然后升级杀毒软件,杀毒。
如果问题还没有解决,建议使用AutoRuns检查自启动项目,找到该文件对应的项目并删除。
#以下都是基于win xp+py 2x;其他 *** 作系统及py3x没试过
1电脑蜂鸣音:
print '\a'7
#xp,py 26测试,这个绝对有BB的声音。。。
2播放外部音频文件
推荐外部模块:winsound
代码示例:
import winsound
PlaySound(sound)
#sound为wav文件名。
#还有其他播放其他多媒体格式的模块,可自行google下。
3文本语音发音
#这个我曾用文本语音来代替程序运行的文字提示,搭建平台:
winxp+MS语音库+py_win32+py25(语音识别+文本发音)/py26(文本发音)+pyspeech(语音识别和发音模块)/pytts(仅文本发音)
pywin32:>
以上就是关于python程序运行结束后,怎么让它自动回到开头重新运行全部的内容,包括:python程序运行结束后,怎么让它自动回到开头重新运行、如何在Python程序退出的时候,强制运行一些命令呢、sublime text2 运行python程序 中途怎么停止等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)