码迷,mamicode.com
首页 > 其他好文 > 详细

小知识点随记

时间:2017-06-30 00:01:27      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:表达   本地连接   服务   最好   system   import   nbsp   地址   config   

一.__init__.py文件的用处

1.在py2中引用其他文件夹中的模块的时候,需要先建立一个__init__.py文件

1)在python3里面要是导入其他目录下的python文件的话:

如:from 第七周作业.core.login import login 

注意:第七周作业.core是文件夹的名字,login是py文件名,login 是函数名

2)在python2里面如果要导入其他目录下的python文件的话,需要在这个文件下面建一个__init__.py文件

如果还是引用上面login 函数的话,需要先在core文件夹下建立一个__init__.py文件,那么他下面的函数或者文件才可以被引用

如:from 第七周作业.core.login import login 

2.直接导入一个包

__init__.py就是区分普通文件夹和包的,当文件夹中存在__init__.py文件的时候,这个文件夹就是一个包

导入一个包的实质就是把这个目录下的__init__.py文件从上到下执行一次

假如hhh文件夹下有一个文件__init__.py,内容为:

print("今天天气真好!")

在文件夹test里直接import hhh 就可以了,执行结果就是:今天天气真好

程序的入口在哪个目录下,那么当前目录就再程序入口的目录下

例子:如果想在day7的文件夹test.py里引用包里的my.py文件的话

3.在引用包的时候,也操作其下面的py文件,采用hhh.my.my_func()的方式

1.由于引用包的实质是将包里的__init__.py内容执行一遍,那么需要先在__init__.py文件中导入my.py文件

技术分享

2.虽然my.py文件和__init__.py在一个文件夹hhh下,可是程序的入口test.py在day7个目录下,那么当前目录就再day7的目录下,不可以用import my 代码从day7目录下导入my,需要使用from  . import my,在__init__.py所在的文件下导入my

技术分享

 

3.在入口test.py里面直接引用hhh包就可以,如下图: 

技术分享

上述是在运行入口使用hhh.my.my_func()的方式例子,方然也可以用py3中的那样from hhh.my import my_func也可以,不用在__init__.py文件里from  . import my

二.贪婪模式与非贪婪模式

假如取标题中的URL,如下图:

技术分享

1.贪婪模式,如下,他会把需要匹配的后面的内容不需要的也给全部返回来的

技术分享

2.非贪婪模式:默认是贪婪模式的,要是想要非贪婪模式的话,就需要在后面加上一个?号

技术分享

该网站可以查找一些常用的正则表达式http://tool.oschina.net/regex

 三.os模块中的system命令和open命令的区别

1.system命令,执行的py文件的编码是UTF-8的,在windows中显示的结果是JDK格式的,所以显示乱码,使用read的时候python之间将显示的时候转为UTF-8了,所以显示是正确的,不会乱码

 

import os
os.system(‘ipconfig‘) # 这个方法,能执行命令,但是没办法获取结果
res=os.system(‘ipconfig‘)
print(res) #打印出来是一个0,如果输入的命令不存在的话,返回的结果就是1了
# 返回结果:
# Windows IP ????
#
#
# ??????????? ?????:
#
# y???? . . . . . . . . . . . . : y??????????
# ????????? DNS ??? . . . . . . . :
# 0

 2.open命令,直接用open的话,返回的是内存地址

eg1:

import os
os.popen(‘ipconfig‘)
res=os.popen(‘ipconfig‘)
print(res) #返回的是一个内容地址<os._wrap_close object at 0x000000EDF095B748>

 eg2:需要使用read方法获取一下,返回的是执行命令之后的返回结果

import os
res=os.popen(‘ipconfig‘).read()
print(res)
返回结果:
Windows IP 配置
返回结果
以太网适配器 以太网:

媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地连接* 2:

区别就是system没有返回值,open有返回值,当需要查询操作命令的返回结果的时候,就可以用open方法;执行的py文件的编码是UTF-8的,在windows中显示的结果是JDK格式的,所以显示乱码,使用read的时候python将显示的内容转为UTF-8了,所以显示是正确的,不会乱码

LInux下top命令是动态的监控服务器的资源,CUP、内存的使用率,这样的命令使用popen就不太好用了,直接用就会报错了

top -n 1每次只取一次,这样的话才可以获取到如:

import os
res=os.popen(‘top -n 1‘).read()
print(res)

四.zip函数,循环的时候同时循环两个list,字符串也可以,只有个数一样的都可以
eg1:
list1=[1,2,3]
list2=[‘xiaoming‘,‘niuniu‘,‘MLing‘]
for i,k in zip(list1,list2):
print(i,k)

返回结果:

1 xiaoming
2 niuniu
3 MLing

eg:2
list1="1234"
list2="MLIng"
for i,k in zip(list1,list2):
print(i,k)
返回结果:

1 M
2 L
3 I
4 n

注意:循环的列表或者字符串的个数最好一样不一样的话,只循环到都一样的部分



 

小知识点随记

标签:表达   本地连接   服务   最好   system   import   nbsp   地址   config   

原文地址:http://www.cnblogs.com/MLing/p/7096662.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!