Python--模块(Python简明教程)

Python调用驱动级按键--DD虚拟键盘 开发DNF连点功能时,常规的PyMouse PyKeyboard无效 猜测原因是DNF屏蔽了模拟信号 尝试使用驱动级按键 作者:石头三颗 链接:https://www.zhihu.com/question/42888871/answer/385506293 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 比如DD虚拟键盘虚拟鼠标 这个官方例子里就有p... 阅读详情
     
模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。

使用sys模块

$ cat using_sys.py 
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# wul@2013-02-18 16:58:54

import sys

print 'The command line arguments are:'
for i in sys.argv:
     print i

print '\n\nThe PYTHONPATH is', sys.path, '\n'

$ chmod +x using_sys.py 
$ ./using_sys.py we are arguments
The command line arguments are:
./using_sys.py
we
are
arguments


The PYTHONPATH is ['/home/users/wul/python', '/usr/lib/portage/pym', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/PIL', '/usr/lib64/portage/pym'] 
 
利用import语句输入sys模块

当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你使用 。注意,初始化过程仅在我们 第一次 输入模块的时候进行。另外,“sys”是“system”的缩写。

sys模块中的argv变量通过使用点号指明——sys.argv——这种方法的一个优势是这个名称不会与任何在你的程序中使用的argv变量冲突。另外,它也清晰地表明了这个名称是sys模块的一部分。

sys.argv变量是一个字符串的 列表

这里,当我们执行using_sys.py的时候,./运行using_sys.py,后面跟着的内容被作为参数传递给程序。Python为我们把它存储在sys.argv变量中。

记住,脚本的名称总是sys.argv列表的第一个参数。所以,在这里,'using_sys.py'是sys.argv[0]、'we'是sys.argv[1]、'are'是sys.argv[2]以及'arguments'是sys.argv[3]。注意,Python从0开始计数,而非从1开始。

sys.path包含输入模块的目录名列表。我们可以观察到sys.path的第一个字符串表示当前目录也是sys.path的一部分,这与PYTHONPATH环境变量是相同的。这意味着你可以直接输入位于当前目录的模块。否则,你得把你的模块放在sys.path所列的目录之一。

字节编译的文件

输入一个模块相对来说是一个比较费时的事情,所以Python做了一些技巧,以便使输入模块更加快一些。一种方法是创建 字节编译的文件 ,这些文件以.pyc作为扩展名。字节编译的文件与Python变换程序的中间状态有关。当你在下次从别的程序输入这个模块的时候,.pyc文件是十分有用的——它会快得多,因为一部分输入模块所需的处理已经完成了。另外,这些字节编译的文件也是与平台无关的。所以,现在你知道了那些.pyc文件事实上是什么了。

from ... import语句

如果你想要直接输入argv变量到你的程序中(避免在每次使用它时打sys.),那么你可以使用from sys import argv语句。如果你想要输入所有sys模块使用的名字,那么你可以使用from sys import *语句。这对于所有模块都适用。一般说来,应该避免使用from..import而使用import语句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。

__name__

每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主 块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。

wul@ops-dev ~/python $ cat using_name.py
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# wul@2013-02-18 17:20:55

if __name__ == '__main__':
     print 'Thish program is being run by itself'
else:
     print 'I am being imported from another module'
wul@ops-dev ~/python $ ./using_name.py
Thish program is being run by itself
wul@ops-dev ~/python $ python
Python 2.7.3 (default, Jun 12 2012, 10:28:26)
[GCC 4.5.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import using_name
I am being imported from another module
>>> quit()
wul@ops-dev ~/python $

 每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行,我们可以进行相应的恰当操作。

创建自己的模块


dir()函数

你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。
当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。

wul@ops-dev ~/python $ python
Python 2.7.3 (default, Jun 12 2012, 10:28:26)
[GCC 4.5.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> dir(sys)
['__displayhook__', '__doc__', '__egginsert', '__excepthook__', '__name__', '__package__', '__plen', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', '_mercurial', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'long_info', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']
>>> dir()  
['__builtins__', '__doc__', '__name__', '__package__', 'sys']
>>> a=5
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'a', 'sys']
>>> del a
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'sys']
>>>
Python实现基于DD驱动的键盘R键连发功能 本文介绍了使用Python实现基于DD驱动的键盘R键连发功能的技术方案。文章首先分析了驱动级模拟的必要性,指出传统方法在DirectInput游戏等场景下失效的问题。核心挑战在于区分物理按键和模拟按键以避免无限循环。解决方案采用DD驱动加载、物理按键监听、注入检测过滤和连发控制逻辑等模块,通过ctypes加载DD驱动DLL,利用Windows低级键盘钩子检测LLKHF_INJECTED标志位来过滤模拟事件。实现部分展示了DD键码映射、驱动加载和按键模拟的代码实现,为游戏开发和自动化测试提供了可靠的键盘连发功 阅读详情

相关推荐

DD94687.64.dll

DD虚拟键盘--------python模拟键盘输入密码(安全控件)硬件驱动链接库,本资源仅供学习交流,未经许可不得私自商用。

Python自动化测试之ddt数据驱动

我们在做自动化过程中常用的几种模式:1、关键字驱动,2、BDD行为驱动,3、数据驱动,其实对于数据驱动来说经常会有多种实现方式,今天小编给大家要讲的就是通过ddt实现数据驱动。

软件自动化测试技术交流、资源分享 594

python驱动模拟按键.py

驱动级别的模拟按键,需要先安装winio才可以运行。可以制作任何脚本

Python:设置Python解释器不生成字节码pyc文件

设置Python解释器不生成字节码pyc文件 设置不生成字节码文件 方式一:设置环境变量(最常用的) export PYTHONDONTWRITEBYTECODE=1 方式二:使用 -B参数 $ python -B test.py 方式三:在导入的地方写 import sys sys.dont_write_bytecode = True ...

西京刀客 2012

DD驱动级鼠键模块源码(.e)

注意: 1、核心DLL文件是第三方的,不是我写的; 2、模块是我自己写的,现在开源!

DD XOFT,Python驱动

使用Python驱动DD键盘,可以破解装有安全键盘的程序,控制输入

Python青少年简明教程:模块

Python青少年简明教程:模块

cnds123的专栏 428

dd驱动级键盘模拟模块源码和调用例程(tgp登陆源码)

资源介绍:。调用DD驱动,WIN10系统下可正常使用。资源作者:。BUG508。资源界面:。资源下载:。

《简明Python教程》之模块

标准库模块importimport syssys 模块,由于其是一个内置模块,因此 Python 知道应该在哪里找到它。 如果它不是一个已编译好的模块,即用 Python 编写的模块,那么 Python 解释器将从它的 sys.path 变量所提供的目录中进行搜索。如果找到了对应模块,则该模块中的语句将在开始运行,并能够为你所使用。在这里需要注意的是,初始化工作只需在我们第一次导入模块时完成。

qingmoshu的专栏 468

NXP ChessDE的安装和激活

如果客户申请的是试用版,那么一份为期 30 天的 License 将会发送申请人的账号或邮箱中,客户使用该文件进行安装即可。② 将“VENDOR snpslmd /path/to/snpslmd”中的“/path/to/snpslmd”替换成 snpslmd.exe 实际存放路径(位于 SCL 安装目录下的 win32\bin 文件夹中,默认安装的情况下就是“VENDOR snpslmd C:\Synopsys\SCL\<version>\win32\bin\snpslmd.exe”)。

weixin_47351160的博客 2045

FOC电机控制中电流采样延迟补偿的原理和方法

摘要: FOC电机控制中,电流采样、计算与PWM更新存在固有延迟(约1.5个PWM周期),导致相位滞后,限制电流环带宽。主流补偿方法包括: 一阶前向预测法:基于历史电流值预测未来电流,抵消延迟,工程应用广泛; 相位超前补偿:通过s/z域校正器设计实现等效预测; 状态观测器法(如龙伯格观测器):通过电机模型闭环估计状态,兼具噪声抑制和参数辨识能力,但复杂度高。实际需注意参数敏感性、离散化精度及延迟时间校准,避免过补偿风险。一阶预测法因平衡效果与复杂度成为工业首选。

jifengzhiling的博客 2233

Python简明教程之模块篇

Python简明教程之模块篇 什么是模块 定义:简单的说,在python中“.py”后缀的文件即模块,每一个独立的 py 文件,实际上都是一个模块。在模块中,我们不但可以直接存放变量,还能存放函数和类。 模块的调用 1)import语句 如果我们要调用的 py 文件名为“mokuai”,可以采用以下方法: (1)调用模块:import fengbian; (2)调用模块中的变量:fengbia...

hf_xiexiaoming的博客 516

给IC设计新人的Tessent Scan入门指南:从RTL到ATPG的完整DFT流程解析

本文为IC设计新手提供Tessent Scan的完整DFT流程指南,从RTL代码检查到ATPG测试向量生成,详细解析扫描链配置、插入及验证的关键步骤。通过实战案例和工具命令示例,帮助工程师快速掌握Tessent工具链的应用技巧,提升芯片可测试性设计的效率和质量。

weixin_32541663的博客 451

python3 简明教程 --模块

来源于菜鸟教程及实验楼-python3 简明教程 文章目录来源于菜鸟教程及实验楼-python3 简明教程python3模块1,import语句2,from ... import语句3,属性__name__:dir()函数4,包5,标准模块OS模块第三方:Requests模块 python3模块 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被...

Impt_gofly的博客 953

PVE启动卡在loading initial ramdisk

pve显卡直通导致的异常解决

学而时习之 6690

Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(十九):微服务实战——Boot 4 + Spring Cloud 2026.x,构建高并发电商分布式系统

Component@Slf4j@Autowired// 白名单路径@Override// 白名单放行// 提取Token// 传递用户信息到下游服务.mutate().build();@Override// 最高优先级if (bearer!@Component技术点Boot 3 时代Boot 4 时代提升线程模型平台线程池(200线程上限)虚拟线程(百万级并发)50x+服务通信。

qq_17204557的博客 186

简明python3教程_简明Python3教程 10.模块

简介现在你已经知道通过定义函数可以在你的程序中复用代码。但当你想在你编写的其他程序中复用大量函数怎么办呢?也许你可以猜到了,办法就是利用模块。有各种编写模块的方式,但最简单的方式是创建一个以.py为后缀的文件并包含所需的函数与变量。另一种方式是以编写python解释器的本地语言编写模块。例如C语言编写的模块被编译后可供运行于标准python解释器上的python代码使用。模块可以被其它程序导入以使...

weixin_39569051的博客 144

UG\NX二次开发 获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态

获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态。

王牌飞行员_里海的博客 1982

python简明教程学习笔记 模块

1.模块    如果我们想在别的程序之中重用我们已经写好的函数,我们就需要使用模块。有很多种方法可以编写模块,其中最简单的就是创建一个包含函数变量,以 .py 格式为后缀的文件。    另一种方法是使用撰写 Python 解释器本身的本地语言来编写模块。举例来说,你可以使用 C 语言来撰写 Python 模块,并且在编译后,你可以通过标准 Python 解释器在你的 Python 代码中使用它们。...

Coulson_Zhao的博客 488

2026年全国青少年信息素养大赛算法应用主题赛C++样题及答案解析

2026年全国青少年信息素养大赛算法应用主题赛C++样题

王老师青少年编程 3719

嵌入式SDIO 总线面试题及参考答案

SDIO 的 4 位总线模式是一种提高数据传输效率的工作模式。在传统的 1 位总线模式下,数据只能通过一根数据线(DAT0)进行传输,这限制了数据传输的带宽和速度。而在 4 位总线模式下,DAT0 - DAT3 这 4 根数据线同时用于数据传输,相当于在同一时间内可以传输 4 倍于 1 位模式的数据量,从而显著提高了数据传输的带宽和速度。要通过 CMD6 命令将 SDIO 总线从当前模式切换到 4 位总线模式,需要遵循以下步骤:第一步,主设备需要确保 SDIO 卡支持 4 位总线模式。

大模型大数据攻城狮的专栏 1719

Python青少年简明教程:turtle模块入门

Python青少年简明教程:turtle模块入门

cnds123的专栏 2232

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

简明 Python 教程(第6章 模块)

模块是Python中组织代码的一种方式,它允许开发者将代码分解为可重用的单元,便于管理和维护。开发者可以有效地利用Python的模块系统来构建复杂的应用程序。模块是一个包含Python定义和声明的文件,文件名就是模块名加上.py扩展名。模块可以包含函数、类、变量以及可执行的代码。

748

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

简明Python 教程 --模块

第8章 模块目录表简介 使用sys模块 字节编译的.pyc文件 from..import语句 模块的__name__ 使用模块的__name__ 制造你自己的模块 创建你自己的模块 from..import dir()函数 使用dir函数 概括 简介你已经学习了如何在你的程序中定义一次函数而重用代码。如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案

派的无理性 1343

Python3简明教程(十二)—— 模块

在这节我们将要学习 Python 模块相关知识。包括模块的概念和导入方法,包的概念和使用,第三方模块的介绍,命令行参数的使用等。 模块 到目前为止,我们在 Python 解释器中写的所有代码都在我们退出解释器的时候丢失了。但是当人们编写大型程序的时候他们会倾向于将代码分为多个不同的文件以便使用,调试以及拥有更好的可读性。在 Python 中我们使用模块来到达这些目的。模块是包括 Py...

dianshu1593的博客 276

【Python】logging日志模块简明教程

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息; print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出。 基本设置: from datetime import datetime import l

LeonJin的博客 518
上一篇: Nginx支持Nagios相关配置
下一篇: 关于RHEL6.3 sysctl 一个错误问题的解决
kumu_Linux
博客等级 码龄15年 68粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值