.py文件是什么?

.py文件是什么?,第1张

py文件是python的脚本文件。

Python在执行时,首先会将py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,NET是一致的。

然而,Python Virtual Machine与Java或NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。

这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或NET的功能更强大,而是说和Java 或NET相比,Python的Virtual Machine距离真实机器的距离更远。

或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是pyc格式。

扩展资料:

python的优点:

1、简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

2、易学:Python极其容易上手,因为Python有极其简单的说明文档。

3、速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。

4、免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

5、高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

6、可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。

7、解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。

运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。

在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

8、面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

9、可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

10、可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

11、丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的 *** 作。

12、规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

参考资料来源:百度百科-python

一、什么是xml?
xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
abcxml
复制代码代码如下:
<xml version="10" encoding="utf-8">
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption>测试</caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
Ok ,从结构上,它很像我们常见的HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,其焦点是数据的外观。它被设计用来传输和存储数据,其焦点是数据的内容。
那么它有如下特征:
首先,它是有标签对组成,<aa></aa>
标签可以有属性:<aa id='123'></aa>
标签对可以嵌入数据:<aa>abc</aa>
标签可以嵌入子标签(具有层级关系):
二、获得标签属性
那么,下面来介绍如何用python来读取这种类型的文件。
复制代码代码如下:
#coding=utf-8
import xmldomminidom
#打开xml文档
dom = xmldomminidomparse('abcxml')
#得到文档元素对象
root = domdocumentElement
print rootnodeName
print rootnodeValue
print rootnodeType
print rootELEMENT_NODE
mxldomminidom 模块被用来处理xml文件,所以要先引入。
xmldomminidomparse() 用于打开一个xml文件,并将这个文件对象dom变量。
documentElement 用于得到dom对象的文档元素,并把获得的对象给root
每一个结点都有它的nodeName,nodeValue,nodeType属性。
nodeName为结点名字。
nodeValue是结点的值,只对文本结点有效。
nodeType是结点的类型。catalog是ELEMENT_NODE类型
现在有以下几种:
'ATTRIBUTE_NODE'
'CDATA_SECTION_NODE'
'COMMENT_NODE'
'DOCUMENT_FRAGMENT_NODE'
'DOCUMENT_NODE'
'DOCUMENT_TYPE_NODE'
'ELEMENT_NODE'
'ENTITY_NODE'
'ENTITY_REFERENCE_NODE'
'NOTATION_NODE'
'PROCESSING_INSTRUCTION_NODE'
'TEXT_NODE'
三、获得子标签
现在要获得catalog的子标签以的标签name
复制代码代码如下:
<xml version="10" encoding="utf-8">
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption>测试</caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
对于知道元素名字的子元素,可以使用getElementsByTagName方法获取:
复制代码代码如下:
#coding=utf-8
import xmldomminidom
#打开xml文档
dom = xmldomminidomparse('abcxml')
#得到文档元素对象
root = domdocumentElement
bb = rootgetElementsByTagName('maxid')
b= bb[0]
print bnodeName
bb = rootgetElementsByTagName('login')
b= bb[0]
print bnodeName
如何区分相同标签名字的标签:
复制代码代码如下:
<xml version="10" encoding="utf-8">
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption>测试</caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
<caption>和<item>标签不止一个如何区分?
复制代码代码如下:
#coding=utf-8
import xmldomminidom
#打开xml文档
dom = xmldomminidomparse('abcxml')
#得到文档元素对象
root = domdocumentElement
bb = rootgetElementsByTagName('caption')
b= bb[2]
print bnodeName
bb = rootgetElementsByTagName('item')
b= bb[1]
print bnodeName
rootgetElementsByTagName('caption') 获得的是标签为caption 一组标签,b[0]表示一组标签中的第一个;b[2] ,表示这一组标签中的第三个。
四、获得标签属性值
复制代码代码如下:
<xml version="10" encoding="utf-8">
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption>测试</caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
<login>和<item>标签是有属性的,如何获得他们的属性?
复制代码代码如下:
#coding=utf-8
import xmldomminidom
#打开xml文档
dom = xmldomminidomparse('abcxml')
#得到文档元素对象
root = domdocumentElement
itemlist = rootgetElementsByTagName('login')
item = itemlist[0]
un=itemgetAttribute("username")
print un
pd=itemgetAttribute("passwd")
print pd
ii = rootgetElementsByTagName('item')
i1 = ii[0]
i=i1getAttribute("id")
print i
i2 = ii[1]
i=i2getAttribute("id")
print i
getAttribute方法可以获得元素的属性所对应的值。
五、获得标签对之间的数据
复制代码代码如下:
<xml version="10" encoding="utf-8">
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption>测试</caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
<caption>标签对之间是有数据的,如何获得这些数据?
获得标签对之间的数据有多种方法,
方法一:
复制代码代码如下:
#coding=utf-8
import xmldomminidom
#打开xml文档
dom = xmldomminidomparse('abcxml')
#得到文档元素对象
root = domdocumentElement
cc=domgetElementsByTagName('caption')
c1=cc[0]
print c1firstChilddata
c2=cc[1]
print c2firstChilddata
c3=cc[2]
print c3firstChilddata
firstChild 属性返回被选节点的第一个子节点,data表示获取该节点人数据。
方法二:
复制代码代码如下:
#coding=utf-8
from xmletree import ElementTree as ET
per=ETparse('abcxml')
p=perfindall('/login/item')
for oneper in p:
for child in onepergetchildren():
print childtag,':',childtext
p=perfindall('/item')
for oneper in p:
for child in onepergetchildren():
print childtag,':',childtext
方法二有点复杂,所引用模块也与前面的不一样,findall用于指定在哪一级标签下开始遍历。
getchildren方法按照文档顺序返回所有子标签。并输出标签名(childtag)和标签的数据(childtext)
其实,方法二的作用不在于此,它核心功能是可以遍历某一级标签下的所有子标签。

Python文件是以py为后缀的文件,可以用Python直接运行,但是有的朋友会发现,Python文件打不开了,点击闪退。那么双击py文件闪退怎么办呢?别急,小编现在就为大家带来py文件打开闪退的解决方法。py文件打开闪退的解决方法:1、首先找到我们平时编辑python后,将文件储存的所在文件夹的位置,尝试下双击,看是否能打开;2、如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程序或者文本编译器看看是否能够打开文件。我先尝试了双击,未打开,接着选择打开方式--pthon,还是失败。然后选择了平时的文本编译器Geany,成功打开了命名为commentpy的python文件;3、尝试用文本编译器执行该python文件,看看能否运行。结果显示可以成功运行;4、尝试在完成后的程序末尾加上函数input(),加入这个函数后,相当于在等待你输入,这是一个还未完结的程序。再选择保存;5、退出geany编译器,再次找到该python文件,尝试双击或者选择python程序打开该文件。问题就解决了。
py文件是python的脚本文件。Python在执行时,首先会将py文件中的源代码编译成Python的bytecode(字节码),然后再由PythonVirtualMachine(Python虚拟机)来执行这些编译好的bytecode。这种机制的基本思想跟Java,NET是一致的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13393285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存