精华内容
下载资源
问答
  • 灵活且可自定义的Python源代码文档生成器。 GooDoc根据其文档字符串为您的Python源代码生成HTML文档。 是什么将GooDoc定义为唯一的文档生成器: 无需以特定方式编写docstring,只需将docstring放在其中即可。 ...
  • 本压缩包包括 SHA-3 python源代码,和官方文档。 hash 结果为 标准 hash 值,注释详细,适合初学者。 本代码实现的是 SHA-3 512 hash 算法。 现列出本代码 空字符 hash 值 便于检验 ('a69f73cca23a9ac5c8b567dc185a...
  • vim-pydocstring:生成Python文档字符串到您的Python源代码
  • 本压缩包含 【SM2 官方文档python 源码】 【SM4 官方文档python 源码】; 源码加密结果和官方文档示例相同 ,适合初学者,且注释详细
  • 所有文档使用 markdown 文件保存,由 Jekyll 编译成静态 HTML 后运行。Coding 文档主要分为两部分:1、常见问题;2、文档
  • 请求分页存储管理Python实现源代码+课设报告文档-海南大学信息学院操作系统课设。请求分页存储管理Python实现源代码+课设报告文档-海南大学信息学院操作系统课设。
  • python源代码文件加密

    千次阅读 2019-08-21 12:53:40
    pyc文件是py文件经过编译后生成的二进制文件,因此可以发布pyc文件以隐藏源代码。pyc文件拥有更快的加载速度,执行速度没有区别。pyc是一种跨平台的字节码,pyc的内容是跟python的版本相关的,不同版本编译后的pyc...

    由于python设计的初衷是开源的,因此py文件是可以直接看到源码的。但开发商业软件,代码加密保护就比较重要了。

    python编译后程序

    pyc文件是py文件经过编译后生成的二进制文件,因此可以发布pyc文件以隐藏源代码。pyc文件拥有更快的加载速度,执行速度没有区别。pyc是一种跨平台的字节码,pyc的内容是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。
    python提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是py_compile模块:
    生成单个pyc文件
    python -m py_compile test.py
    python -O -m py_compile test.py
    -O 优化成字节码(pyo)
    -m 表示把后面的模块当成脚本运行
    -OO 表示优化的同时删除文档字符串
    批量生成pyc文件
    python -m compileall

    对服务器脚本敏感信息加密的程序,就可以使用这种方式生成pyc文件,提高一层保护的功能,当然反编译在很大程度上还是能还原回来的:

    #对程序进行编译
    [root@localhost encrypt]# python -m py_compile optcrypt.py
    [root@localhost encrypt]# python -m py_compile server.py 
    [root@localhost encrypt]# python -m py_compile __init__.py
    #生成文件
    [root@localhost encryptc]# ls
    global.properties  __init__.pyc  optcrypt.pyc  server.pyc  test.sh
    

    程序加密

    目前软件开发商对 Python 加密时可能会有两种形式,一种是对python转成的exe进行保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程。

    1.pyexe、PyInstaller、py2app 打包软件

    这些工具用于将一个Python项目打包成单个可执行的文件,对 python转exe加壳,方便(在没有Python环境的机器上)使用。但通过压缩包可以方便地得到所有pyc文件或源文件,与C/C++编译生成的可执行文件有本质上的区别,基本上是零保护。

    2.对.py/.pyc加密

    第一步,使用加壳工具对 python 安装目录下的 python.exe 进行加壳,将 python.exe 拖入到加壳工具 VirboxProtector 中,配置后直接点击加壳。
    第二步,对.py/.pyc 进行加密,使用 DSProtector 对.py/.pyc 进行保护。

    3.使用cython保护python的代码(推荐)

    先安装cython
    pip install cython
    有些系统要求Cython大写
    pip install Cython

    No package cython available.

    • Maybe you meant: Cython

    然后安装python开发包
    centos系统下
    yum install python-devel
    然后对python代码文件进行转换:
    cython hello.py --embed #把python代码转换成c代码
    会生成一个名为hello.c的c语言的源文件。
    然后使用gcc编译成二进制可执行文件,这时候需要制定头文件、编译选项、链接选项:(macOS下测试通过)

    gcc `python-config --cflags` `python-config --ldflags`  hello.c -o hello
    

    注:使用`符号,而不是单引号’。

    如果python版本较高的话可以使用

    gcc `python3-config --cflags --ldflags` hello.c -o hello
    

    这样代码就被编译成二进制的可执行程序了。
    链接错误的话试试:(centOS下测试通过,如果hello.c -o hello放在最后则centOS编译会报错)

    gcc `python-config --cflags` -o hello hello.c  `python-config --ldflags`
    

    4. 加密.py文件为.so文件

    4.1 安装 cython, python-devel, gcc
    4.2 新建一个setup.py,内容是:
    from distutils.core import setup
    from Cython.Build import cythonize
    setup(ext_modules = cythonize(["helloworld.py"]))
    

    其中helloworld.py是需要加密的文件。setup.pyhelloworld.py放在相同文件夹。

    4.3 运行setup.py脚本
    python setup.py build_ext --inplace
    

    其中build_ext代表外部模块,--inplace参数则表示在当前目录生成文件。

    4.4 运行脚本后,在当前文件夹会生成helloworld.so文件

    然后直接导入helloworld这个模块即可。如果你定义了类,可能还会遇到和__init____call__相关的错误。解决办法就具体问题具体分析了。

    Note:Windows下会生成.pyd文件,而非.so文件

    4.5 另外一种编译方法(未测试)
    cython helloworld.py
    gcc -c -fPIC -I/usr/include/python2.7/ helloworld.c
    gcc -shared helloworld.o -o helloworld.so
    

    Note: 编译后的文件与平台和python版本相关性比较高,我的做法是使用docker来进行部署。

    参考文献:

    1. python源代码文件加密 - 简书
    2. python文件编译成so介绍 - 1.使用cython将py文件编译成so文件 - linyonghui1213的专栏 - CSDN博客
    3. Cython编译python为so 代码加密 - 经验集锦 - CSDN博客
    4. Python编译成.so文件进行加密后调用 - weixin_44216589的博客 - CSDN博客
    5. python将py编译成so方法 - 牧飞 - CSDN博客
    6. python 源代码保护 之 xx.py -> xx.so - TonyZhang24 - 博客园
    展开全文
  • 文档讲述了Python的使用方法,简介了django MVT思想在web开发中的应用
  • 整理的官方文档,供大家学习使用。适用于Python3.6版本,完整版无删减
  • Python-2.7.2 源代码

    2011-08-03 20:11:16
    这是python 2.7 的源代码 ,想研究源代码的高手,可以下载看看,里面也有Python源码剖析文档
  • source insight中阅读python源代码

    千次阅读 2012-09-22 17:45:18
    SI是个很强大的代码查看修改工具,以前用来看C,C++都是相当happy的。最近需要用Python,看了两天毫无颜色的UltraEdit之后决定,还是迁移回SI看。无奈SI默认不支持Python,需要进行下小小设置~~~步骤如下: ...

    SI是个很强大的代码查看修改工具,以前用来看C,C++都是相当happy的。最近需要用Python,看了两天毫无颜色的UltraEdit之后决定,还是迁移回SI看。无奈SI默认不支持Python,需要进行下小小设置~~~步骤如下:

    1. 下载个SI的CLF文件,地址为http://www.sourceinsight.com/public/languages/Python.CLF
    2. 打开SI。选项 | 参数选择 | 语言,点击“导入”,选择刚刚下载的Python.CLF文件,“确定”。然后就会发现有了Python语言。
       image   
    3. 选项 | 文档选项,点击“添加类型”,输入“Python源文件”,“确定”。
      在文件过滤器中,输入*.py 。 在“分解”框中点击“语言”,选择“Python Language”。 
      image
    4. 这里我想说明的事把加入到项目时包含那个选项勾选起来,不然,创建工程,加入文件是不会自动添加python源文件到工程中的
    5. ok~~大功告成啦。然后就可以正常的建立工程,导入源文件啦~~~~
    6. show一下最后的效果。嘎嘎
      image
    展开全文
  • Python编程》源代码文件 12M左右
  • 说明:研究分析url获得下载文件。初步实现python下载固定带有文件名文件下载,努力做一个稳定可靠的微型下载工具。 欢迎给各位朋友给出好的意见和建议。
  • 1:python对象的实现机制,如何用C来实现 2:对象的特性是如何实现的,对象是如何管理的,不同对象,如int,str,list,dict等处理。 3:python的作用域和名字空间 4:python的虚拟机框架。 5:运行时环境,pyc文件,类...
    1:python对象的实现机制,如何用C来实现
    
    2:对象的特性是如何实现的,对象是如何管理的,不同对象,如int,str,list,dict等处理。
    3:python的作用域和名字空间
    4:python的虚拟机框架。
    5:运行时环境,pyc文件,类机制等
    6:内存管理
    7:GIL和多线程

    8:模块动态加载

    python  (华蟒用户组)

    http://groups.google.com/group/python-cn/topics

    展开全文
  • anaconda-mode:Python代码导航,文档查找和完成
  • 简明python教程+源代码

    2015-12-23 10:16:56
    简明python教程+源代码,英文原版名为《A Byte of Python》。它非常简明扼要地介绍了Python语言基础的各个方面。 适合群体: 仅仅临时使用Python的新手,非专业性地临时运用十来行简单代码就能自动化处理一些工作。 ...
  • Python文件 Python3.6中文文档 Python标准库中文版 Python3.5技术手册实验以及代码范例 Python核心编程第三版中文pdf以及源码 Python从入门到实践pdf PythonGui入门教程
  • python爬虫项目开发源代码,内涵pdf高清文档以及各个章节的代码!
  • 21天学通Python高清Pdf+源代码+PPT。
  • 资源里包括了Python基础教程书本当中所有示例的源代码Python基础教程(第二版修订版)高清PDF文档
  • Python天天生鲜项目源代码及部署文件 毕业设计。 压缩包里包含使用Python语言下的django框架编写的天天生鲜项目,为了方便使用,里面有写好的部署文档。可以根据部署文件的内容进行项目搭建。 Python 项目 毕设 代码...
  • 81个Python爬虫源代码+九款开源爬虫工具,81个Python爬虫源代码,内容包含新闻、视频、中介、招聘、图片资源等网站的爬虫资源
  • Python高级编程书中的源代码

    热门讨论 2011-09-12 21:05:01
    最近读了<Python高级编程>这本书,收获颇丰. 本书讲解了Python开发环境,包的发行和分发,持续集成,版本控制,开发模式,文档编写,测试驱动开发等. 共享书中的源代码,希望对大家有帮助.
  • Python_3标准库 源代码

    2020-07-25 14:08:23
    全书以案例驱动的方式讲解了标准库中数百个模块的使用方法(如何工作)和工作原理(为什么要这样工作),比标准库的官方文档更容易理解(一个简单的示例比一份手册文档更有帮助),为Python程序员熟练掌握和使用这些...
  • 基于Python的数据版本备份、回滚源代码 基于UDP、TCP传输协议 演示视频、项目文档
  • DjangoPracticeProject:《跟老齐学Python:Django实战》对于初学者来说,也许官方文档太简要了,因此本书的作用就是将初学者领入Django开发的大门,并引导读者熟悉使用Django官方文档。本书从始至终贯穿着一个项目...
  • 用于源代码文档的扩展markdown。 XMD允许以语法降价的形式为源代码编写文档。 文档未写在源代码本身中,以确保其不受污染。 为了使文档和源保持同步,脚本会搜索源并检查是否为功能或类(实体)编写了任何文档。 ...
  • Python中的数据结构和算法 此存储库包含Python中数据结构和算法的所有实现,具有最佳的时间和空间复杂性,并带有源代码和完整的文档 内容 链表
  • python处理word文档(docxtpl 中文说明文档

    万次阅读 多人点赞 2019-03-16 23:43:33
    docxtpl 一个很强大的包,其主要通过对docx文档模板加载,从而对其进行修改。 主要依赖两个包 python-docx :读写doc文本 jinja2:管理插入到模板中的标签 安装 pip install docxtpl 基本使用: from docxtpl ...

    一 docxtpl

    docxtpl 一个很强大的包,其主要通过对docx文档模板加载,从而对其进行修改。
    主要依赖两个包

    • python-docx :读写doc文本
    • jinja2:管理插入到模板中的标签

    因为模板标签主要来自jinja2,可以了解其语法:
    http://docs.jinkan.org/docs/jinja2/templates.html
    docxtpl英文手册:
    https://docxtpl.readthedocs.io/en/latest/#jinja2-like-syntax

    安装

    pip install docxtpl

    基本使用示例:

    from docxtpl import DocxTemplate
    doc = DocxTemplate("my_word_template.docx")
    context = { 'company_name' : "World company" }
    doc.render(context)
    doc.save("generated_doc.docx")
    

    导言

    python-docx-template被开发出来,是因为python-docx的强大在于创建文档,而不是修改它们。

    这个想法是开始于创建一个需要用MicrosoftWord生成的文档的示例,它可以像我们想要的那样复杂:如图片、索引表、页脚、页眉、变量,以及我们可以用Word做的任何事情。然后,当我们使用MicrosoftWord编辑文档时,直接在文档中插入类似于Jinja 2的标记。将文档保存为.docx文件(XML格式):它将是.docx模板文件。

    现在,我们可以使用python-docx-template从这个.docx模板和将关联的上下文变量生成您想要的多个Word文档。

    注意:python-docx-template是测试的是MS Word 97格式,它可能不适用于其他版本.

    Jinja 2类语法

    因Jinja 2包被使用,可以使用Word文档中的所有Jinja 2标记和过滤器。然而,要使它在Word文档中工作,进行了些限制和扩展:

    限制

    通常的Jinja 2标签,只能在同一个段落的同一个‘’run’中使用,它不能跨几个段落使用,表行、‘run’。如果您想要管理段落、表行和整个‘run’的样式,您必须使用特殊的标记语法,如下一章所述。

    注意:MicrosoftWord的“Run”是一个具有相同风格的字符序列。例如,如果您创建一个具有相同风格的所有字符的段落:Word将在内部创建一个段落中的“Run”。现在,如果你在这段中间加了一个粗体,单词会把前面的“Run”转换成3‘Run’(普通-粗体-正常)。

    扩展

    为了管理段落、表行、表列、run,必须使用特殊的语法。(区别于jinja2)

    {%p jinja2_tag %} for paragraphs
    {%tr jinja2_tag %} for table rows
    {%tc jinja2_tag %} for table columns
    {%r jinja2_tag %} for runs

    通过使用这些标记,python-docx-template将真正的Jinja 2标记放入文档的XML源代码中的正确位置。此外,这些标记还告诉python-docx-template移除位于开始和结束标记的位置的段落、表行、表列或run,只注意中间的位置。

    重要*不要使用2次{%p, {%tr、`{%tc‘、{%r在同一段落中,行、列或run。例子:

    不要用这个

    {%p if display_paragraph %}Here is my paragraph {%p endif %}

    而是使用

    {%p if display_paragraph %}
    Here is my paragraph
    {%p endif %}

    这种语法是可能是因为Microsoft word将每一行都看作是一个新的段落,{%p标签不在同一段中

    显示变量

    作为Jinja 2的一部分,可以使用双括弧:

    {{ <var> }}
    但如果 <var> 是RichText对象,必须指定要更改实际的“Run”。

    {{r <var> }}
    注意’r紧跟左括弧。

    重要*不要使用 r 变量出现在模板中,因为{{r}} 可以解释为 {{r 没有指定变量。不过,您可以使用以‘r’开头的更大的变量名。例如{{render_color}}将被解释为{{ render_color }}不像{{r ender_color}}.

    重要*不要使用2次 {{r 在同一run上。使用RichText.add()方法在python端连接多个字符串和样式,并且只有一个字符串和样式 {{r 在模板边。

    单元格颜色

    当您想要更改表格单元格的背景色时,有一种特殊情况,您必须在单元格的开头放置以下标记

    {% cellbg <var> %}

    <var>必须包含颜色的十六进制代码无散列符号

    列跨越

    如果您想在多个列上动态地跨越一个表单元格(当您有一个具有动态列计数的表时,这是很有用的),您必须在单元格的最开始处放置下面的标记来跨越

    {% colspan <var> %}

    <var>必须包含要跨越的列数的整数。有关示例,请参见下一篇示例操作

    Escaping

    为了展示{%, %}, {{或}},你可以用

    {%, %}, {{ or }}

    RichText

    当你使用{{ <var> }}标记,它将被包含在 var 变量的字符串替换。但它将保持目前的格式。如果要添加动态变化的样式,则必须同时使用以下两种方式:{{r <var> }}标签一个 RichText对象在 var 变量。您可以更改颜色、粗体、斜体、大小等,但最好的方法是使用microsoft word来定义自己的字符样式(主页选项卡->修改样式->管理样式按钮->新建样式,在窗体中选择“字符样式”),请参见tests/richtext.py,除了使用RichText(),您可以使用它的快捷方式:R()

    重要*当你使用{{r }}它从docx模板中移除当前字符样式,这意味着如果你没有在RichText()设置字体样式,样式将返回到Microsoft Word默认样式。这只会影响字符样式,而不会影响段落样式(MSWord管理的这2种样式)。

    可以通过Richtext将超链接添加到文本中。

    tpl=DocxTemplate(‘your_template.docx’)
    rt = RichText('You can add an hyperlink, here to ')
    rt.add(‘google’,url_id=tpl.build_url_id(‘http://google.com’))

    将rt放在您的语境中,然后使用{{r rt}}在你的模板中

    内嵌图像

    您可以动态地将一个或多个图像添加到文档中(使用JPEG和PNG文件进行测试)。只要在你的模板中加上{{ <var> }},标记<var>是doxtpl.inlineImage的实例。

    myimage=InlineImage(tpl,‘test_files/python_logo.png’,width=Mm(20))

    您只需指定模板对象、图像文件路径和可选宽度和/或高度即可。对于高度和宽度,您必须使用毫米(毫米),英寸(英寸)或点(Pt)类。有关示例,请参见test/inlineImage.py。

    子文件

    模板变量可以包含使用python-docxWord文档从头开始构建的复杂变量。为此,首先从模板对象获取子文档对象,并将其用作python-docx文档对象,参见tests/subdoc.py.

    转义,换行符,新段落,列表
    当您使用{{ <var> }},您正在修改XMLWord文档,这意味着您不能使用所有字符,特别是<, >和&。为了使用它们,你必须转义它们。有四种方式:

    context = { ‘var’:R(‘my text’) }和在模板中{{r <var> }}(注意r),
    context = { ‘var’:‘my text’}和在模板中{{ <var>|e }}
    context = { ‘var’:escape(‘my text’)}和在模板中{{ <var> }}。
    在调用呈现方法时启用自动转义:tpl.render(context, autoescape=True)(默认值autoescape=false)
    RichText()或R()提供换行符和新段落功能:只需使用\n或\a在文本中,它们将作相应的转换。

    有关更多信息,请参见tests/escape.py

    另一个解决方案,如果要将列表包含到文档中,即转义文本并管理n和a,则可以使用’Listing’ class:

    在python代码中

    context = { 'mylisting':Listing('the listing\nwith\nsome\nlines \a and some paragraph \a and special chars : <>&') }
    

    在docx模板中只需使用{{ mylisting }}带着Listing(),您将保持当前字符的样式(除非在一个\a之后你开始新的一段落)。

    替换docx图片

    在页眉/页脚中动态添加图像是不可能的,但您可以更改它们。这样做的目的是在模板中放置一个虚拟图片,像往常一样渲染模板,然后用另一个模板替换虚拟图片。你可以同时为所有媒体做到这一点。Note1:纵横比将与替换的图像相同 Note 2:指定用于在docx模板中插入图像的文件名(只要其basename,而不是完整路径)。

    替换dummy_header_pic.jpg的语法:

    tpl.replace_pic('dummy_header_pic.jpg','header_pic_i_want.jpg')
    

    替换发生在页眉、页脚和整个文档正文中。

    替换docx媒体

    在页眉/页脚中动态添加图片以外的其他媒体是不可能的,但您可以更改它们。这样做的目的是在模板中放置一个虚拟媒体,像往常一样呈现模板,然后用另一个模板替换虚拟媒体。你可以同时为所有媒体做到这一点。注意:对于图像,高宽比将与替换的图像注释2相同:重要的是要有源媒体文件,因为它们需要计算它们的CRC才能在docx中找到它们。(虚拟文件名不重要)

    替换dummy_header_pic.jpg的语法:

    tpl.replace_media('dummy_header_pic.jpg','header_pic_i_want.jpg')
    

    警告:与replace_pic() 方法不同,dummy_header_pic.jpg 必须存在模板目录中,当在渲染和保存生成docx时。它必须与手动插入在docx模板的文件相同。替换可以发生在页眉、页脚和整个文档正文中。

    替换嵌入对象

    它的工作方式类似于媒体替换,只是它适用于嵌入式docx这样的嵌入式对象。

    替换embedded_dummy.docx的语法:

    tpl.replace_embedded('embdded_dummy.docx','embdded_docx_i_want.docx')
    

    警告:与REPLE_PIC()方法不同,embdded_dumy.docx必须存在于模板目录中,在渲染和保存生成的docx时。它必须与手动插入docx模板的文件相同。替换发生在页眉、页脚和整个文档正文中。

    Microsoft Word 2016特例

    MS Word 2016将忽略表格的 \t。这对这个版本来说是特别的。但是LibreOffice或Wordpad没有这个问题。对于以jinja2标记产生空格来开头的行,也会出现同样的情况:它们将被忽略。要解决这些问题,解决方案是使用Richtext:

    tpl.render({
        'test_space_r' : RichText('          '),
        'test_tabs_r': RichText(5*'\t'),
    })
    

    在模板中,使用 {r 表示法:

    {{r test_space_r}} Spaces will be preserved
    {{r test_tabs_r}} Tabs will be displayed

    表格

    可以两种方式水平地跨表格单元格,一是利用colspan标记(请参阅tests/dynamic_table.py):

    {% colspan %}

    或者在for循环中(请参阅tests/horizontal_merge.py)):

    {% hm %}

    还可以在for循环中垂直合并单元格(请参阅 tests/vertical_merge.py):

    {% vm %}

    Jinja自定义过滤器

    render() 接受 jinja_env 选项参数:您可以传递一个jinja环境对象。通过这种方式,您可以添加一些定制的jinja过滤器:

    from docxtpl import DocxTemplate
    import jinja2
    def multiply_by(value, by):
       return value * by
    
    doc = DocxTemplate("my_word_template.docx")
    context = { 'price_dollars' : 5.00 }
    jinja_env = jinja2.Environment()
    jinja_env.filters['multiply_by'] = multiply_by
    doc.render(context,jinja_env)
    doc.save("generated_doc.docx")
    

    然后在模板中,您将能够使用

    Euros price : {{ price_dollars|multiply_by(0.88) }}

    例子

    查看其工作原理的最佳方法是阅读示例,它们位于 tests/ 目录。Docx测试模板在tests/templates/目录。要生成最终的docx文件:

    cd tests/
    python runtests.py
    

    生成的文件位于tests/output 目录。

    想要真正学会对应包,赶紧自己下载,根据测试文件测试吧!

    展开全文
  • python爬虫项目开发实战pdf+源代码,内涵pdf高清文档和每个章节的代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 107,682
精华内容 43,072
关键字:

python源代码说明文档

python 订阅