欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(Python第八天)模块

程序员文章站 2022-07-10 08:20:40
...

一、模块

为了便于使用、调试以及拥有更好的可读性,我们使用模块来达到目的,模块就是包括Python定义和声明的文件

我们可以由全局变量__name__得到模块的模块名。

2)导入模块

有不同的方式导入模块,甚至可以从模块中导入指定的函数

from module import * 

导入模块中的所有定义

二、包

含有__init__.py  文件的目录可以用来作为一个包,目录里的所有.py文件都是这个包的子模块

实例:mymodule是一个包名,并且bars和utils是里面的两个子模块

如果__init__.py文件内有一个名为__all__的列表,那么只有在列表内列出的名字将会被公开,如果mymodule内的__init__.py文件内含有以下内容:

(Python第八天)模块

导入的时候只有simplebar可用,

三、默认模块

1)os模块

getuid()返回当前进程的有效用户id

getpid()返回当前进程的id

getppid()返回父进程的id

uname()返回识别操作系用的不同信息

getcwd()返回当前工作目录

chdir(path)更改当前目录到path

实例:创建一个自己的函数,这个函数打印给定目录中的所有文件和目录,

def view_dir(path='.'):           #默认当前目录
    names = os.listdir(path)
    names.sort()
    for name in names:
        print(name, end =' ')
    print()  

ps:1)os.listdir()

返回指定路径下的文件和文件夹列表。

用法是:

import os, sys

# 打开文件
path = "/var/www/html/"
dirs = os.listdir( path )

# 输出所有文件和文件夹
for file in dirs:
   print file

2)list.sort()方法

该方法没有返回值,但是会对列表的对象进行排序。

list.sort(cmp=None, key=None, reverse=False)
  • cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

例子:

aList = [123, 'Google', 'Runoob', 'Taobao', 'Facebook'];
 
aList.sort();
print "List : ", aList
List :  [123, 'Facebook', 'Google', 'Runoob', 'Taobao']

3)end()

python中“end=”用法:例如print(“#”,end=" \n")在打印过程中默认换行,print(“#”,end=" ")则在循环中不换行  

(Python第八天)模块

(Python第八天)模块

2)Requests模块

 Requests是一个第三方Python模块,即需要安装这个模块,是唯一的一个Python HTTP库

1)使用get()获取任意一个网页

实例:

(Python第八天)模块

req的text属性存有服务器返回的HTML网页,这个实例可以让我们写一个能够从指定的URL中下载文件的程序

 1 import os
 2 import os.path
 3 import requests
 4 
 5 def download(url):
 6     req = requests.get(url)
 7     # 首先我们检查是否存在文件
 8     if req.status_code == 404:
 9         print('No such file found at %s' % url)
10         return
11     filename = url.split('/')[-1]
12     with open(filename, 'wb') as fobj:
13         fobj.write(req.content)
14     print("Download over.")
15 
16 if __name__ == '__main__':
17     url = input('Enter a URL: ')
18     download(url)

1)open()函数用法

①文件操作的流程

#1打开文件,得到文件句柄并赋值给一个变量

#2用过句柄对文件进行操作

#3关闭文件

②关于打开模式

r  只读方式打开文件

rb 以二进制格式打开一个文件用于只读

w 打开一个文件用于写入

w+  打开一个文件用于读写,如果该文件已经存在则将其覆盖,如果该文件不存在,创建新文件

a 打开一个文件用于追加

后面有带b的方式,不需要考虑编码方式

2)url.split('/')[-1]的含义

实例:

url = "http://www.runoob.com/python/att-string-split.html"
path = url.split('.')[-1]
print(path)  

输出

html#该实例以。以分隔符保留最后一段  

url.split('/')[-1]   就是获得一个url最后一个/后的字符串

②split("/")[-1] 和 split("/",-1)的区别

str="http://www.runoob.com/python/att-string-split.html"
print("0:%s"%str.split("/")[-1])
print("1:%s"%str.split("/")[-2])
print("2:%s"%str.split("/")[-3])
print("3:%s"%str.split("/")[-4])
print("4:%s"%str.split("/")[-5])

print("5:%s"%str.split("/",-1))
print("6:%s"%str.split("/",0))
print("7:%s"%str.split("/",1))
print("8:%s"%str.split("/",2))
print("9:%s"%str.split("/",3))
print("10:%s"%str.split("/",4))
print("11:%s"%str.split("/",5))
结果是:

0:att-string-split.html
1:python
2:www.runoob.com
3:
4:http:
5:['http:', '', 'www.runoob.com', 'python', 'att-string-split.html']
6:['http://www.runoob.com/python/att-string-split.html']
7:['http:', '/www.runoob.com/python/att-string-split.html']
8:['http:', '', 'www.runoob.com/python/att-string-split.html']
9:['http:', '', 'www.runoob.com', 'python/att-string-split.html']
10:['http:', '', 'www.runoob.com', 'python', 'att-string-split.html']
11:['http:', '', 'www.runoob.com', 'python', 'att-string-split.html']
即: -1  :全切  0 :不切  1:切一刀  (每一块都保留)

[-1]:将最后一块切割出来    [-2]:将倒数第二块切割出来  (只保留切出来的一块)

3)request   content

request一般情况下text提取出来的可能是乱码,但是content提取出来的不会是乱码

req.text返回的是Unicode型的数据,使用req.content返回的是bytes型的数据,即想提取文本,使用req.text,想提取图片,文件,通过req.content

# 例如下载并保存一张图片

import requests

jpg_url = 'http://img2.niutuku.com/1312/0804/0804-niutuku.com-27840.jpg'

content = requests.get(jpg_url).content

with open('demo.jpg', 'wb') as fp:
    fp.write(content)

4)os.path可以检查当前目录是否已经存在相同的文件名

 

 

四、Pycharm中的部分快捷键

1、Ctrl + Enter:在下方新建行但不移动光标;

2、Shift + Enter:在下方新建行并移到新行行首;

3、Ctrl + /:注释(取消注释)选择的行;

4、Ctrl+d:对光标所在行的代码进行复制。