python-基础语法(待完善)

PYTHON 笔记
file 文件操作命令
open() 打开一个文件
open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)
参数
1:打开的文件
2:打开模式
3:buffering设置缓存大小
4:encoding:编码格式
5:errors:报错级别
6:newline:区分换行符
7:closefd:传入的file参数类型
8:opener:设置自定义开启器,开启器的返回值必须是一个打开的文件描述符

打开模式的参数:
t 文本模式(默认)
x 新建一个文件,文件名存在会报错
b 二进制模式
r 读,文件指针放在开头
rb 二进制格式打开,只读,指针在开头
r+ 读写,指针在开头
w 只写,指针在开头,不存在会创建
wb 二进制只读
w+ 读写
a 追加,指针放结尾,不存在会创建
ab 二进制追加
a+ 追加读写
ab+ 二进制追加读写

file.close()
关闭文件。关闭后不能在进行读写
file.flush()
刷新文件内部缓冲,直接吧内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入(边写边用?)
file.fileno()
返回一个整形的文件描述符(file descriptor FD 整型),可以用在如os模式的read方法等一些底层操作上
file.isatty()
如果文件链接到一个终端设备返回True,否则返回False
file.read()
从文件读取指定的字节数,如果为给定或为负则读取所有。
file.readline()
读取整行,包括"\n"字符。
file.readlines()
读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行,实际读取值可能比sizeint较大,因为需要填充缓存
file.seek(offset,whence)
移动文件读取指针到指定位置
offset:偏移量,代表便宜的字节数,负数则从倒数开始

whence:可选,默认值为0.给offset一个参数,表示从哪个位置开始偏移;0;表示从头开始,1从当前位置开始,2从末尾开始
file.tell()
返回文件当前位置。
file.trucate([size])
从文件的首行首字符开始截断,截断文件为size个字符,,无size表示从当前位置截断;截断之后后面的所有字符被删除,其中windows系统下的换行代表两个字符大小

file.writelines(sequence)
向文件写入一个序列字符串列表,如果需要换行则需要自己加入每行的换行符
sequence:需要写入文件的字符串序列。


迭代器与生成器(迭代器类似于光标)
iter() 返回一个迭代器对象
next() 对象输出一次光标下移

类中使用迭代器
__iter__()
__next__()

Stoplteration 停止迭代:可以设置循环次数,来触发异常来结束迭代

生成器 yield
函数中有yield出现 此函数就会变成生成器
yield 11 返回11
name = yield yield 可以接收值,通过send('小明')

当遇到yield时,函数会暂停保存,并返回当前yield的值,等待下一次next()函数执行,再继续

------------------------
os 模块
提供了非常丰富的方法,来处理文件和目录
os.access(path,mode)
检验权限模式

os.chdir(path)
改变当前工作目录


os.chflags(path,flags)
设置路径的标记为数字标记

os.chmod(path,mode)
更改权限

os.chown(path,uid,gid)
更改文件所有者

os.chroot(path)
更改当前进程的根目录

os.close(fd)
关闭文件描述符

os.closerange(fd_low,fd_high)
关闭所有文件描述符,从fd_low(包含)到fd_high(不包含),错误会忽略

os.dup2(fd,fd2)
将一个文件描述符fd复制到另一个fd2

os.fchmod(fd,mode)
改变一个文件的访问权限,该文件由参数fd指定,参数mode时Unix下的文件访问权限

os.fchowm(fd,uid,gid)
修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定

os.fdatasync(fd)
强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更行文件的状态信息

os.fdopen(fd[,mode[,bufsize]])
通过文件描述符fd 创建一个文件对象,并返回这个文件对象

os.fpathconf(fd,name)
返回一个打开的文件的系统配置信息,name为检索的系统配置的值,他也许是一个定义系统值的字符串,这些名字在很多标准中指定

os.fatat(fd)
返回文件描述符fd的状体,像stat().

os.fstatvfs(fd)
返回包含文件描述fd的文件的文件系统的信息,py3.3 相等于statvfs()

os.fsync(fd)
强制将文件描述符为fd的文件写入硬盘

os.ftruncate(fd,length)
裁剪文件描述符fd 对应的文件,所以它最大不能超过文件大小

....其他的请到文档查看


----------------------------------


异常捕捉
try 执行代码
except 发生异常时执行的代码
else(可选) 没有异常时执行的代码
finally 不管有没有异常都会执行的代码
(可做清理任务)

raise [Exception [,args [,traceback]]]
抛出一个指定的异常

预定义的清理行为

with ... as ... : 语句
会保证对象用完之后会执行清理方法
with open("myfile.txt") as f:
for line in f:
print(line,end=" ")


类的实例化


类的专有方法:
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__pow__: 乘方

python3 标准库概览
os 操作系统接口
glob 文件通配符
sys 命令行参数
错误输出重定向和程序终止
sys 还有 stdin,stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息
re 字符串正则匹配

 

---------------
字符串常用
移除空白 strip
分割 split
长度 len(obj)
索引 obj[1]
切片 obj[1:]

创建列表
ll = [1,2,3]
ll = list(1,2,3,4)

索引 index
切片 :
追加 append
删除 del remove pop
长度 len
循环 for while (foreach)
停止循环 break;continue;pass;return;exit
包含 in __contains__

元组
(元素不可修改,但是元组的元素的元素可以被修改)
索引 index
切片 :
追加 append
删除 del remove pop
长度 len
循环 for while (foreach)
停止循环 break;continue;pass;return;exit
包含 in __contains__

字典
新增 d[key] xx
删除 del d[key]
键、值、键值对
keys values items
for i in dict


find
format
name.format('xx','x')
name.format(name='xx',id='x')
lower 小写

strip 清楚空格
lstrip 清左边
rstrip 清右边

maketrans
intab = 'abcde'
outtab = '12345'
trantab = maketrans(intab,outtab)
maketrans 将两个字符串做一一对应关系
complate 替换(可按照maketrans对应关系替换)

join 分割
'-'.join() 用- 作为分隔符分割

partition 分割
name = 'Iamboy'
name.partition('am')
以am 为分割点分割

replace 替换
str.replace('a','b',num) 把目标字符串的a换成b
num 可选,替换的个数

startswith 以什么开始
stopswith 以什么结束

list 列表
append 往列表尾部添加
clear 清空
copy 浅拷贝,拷贝第一层
count() 元素出现次数
extend 合并/扩展
index 获得索引
insert 指定位置添加
pop 通过下标删除
remove 通过值删除,相同值删除第一个
reverse 列表反转
sort 排序

tuple元组
元组和列表可以互相转换
dict 字典
fromkeys() 通过keys 形成新的字典
get(key[,None]) 获取值,如果键不存在可以默认设置值
keys()、values()、items()
键、值、键值对
update(key:val) 更新


difference 差集
a.difference(b) 从a中把b中的去掉
symmetric_differnce 对称差集
a.symmetric_difference(b) 把a和b中相同的去掉,剩下的合到一起

import collections
collentions.counter() 计数器


@ 在python 中 3.5以后版本中出现
一个表示修饰符:可以在模块或者类的定义层内对函数进行修饰
一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西(如果返回不是一个可调用的对象那么会报错)。

矩阵乘法


前面看到76集

116----------------
Socket
通常称作套接字
UDP 速度快,容易丢数据
TCP 可靠
import socket
ip_port = ('127.0.0.1',8979)
sk = socket.socket()
sk.bind(ip_port)
sk.listen(5)

while True:
print('server waiting...')
conn,addr = sk.accept() #等待连接进来

client_data = conn.recv(1024)#recv:
print(client_data)
conn.sendall(bytes('不要回答','utf8'))

conn.close()

 

 


=================================
Python CGI 方面的应用

F:
#引入CGI模块
import cgi, cgitb

#创建FieldStorage 示例
form = cgi.FieldStorage()

#接收字段数据
if form.getvalue('textcontent'):
text_content = form.getvalue('textcontent')
else:
text_content = '没有内容'

print("输入的内容是:%s"%text_content)

 

posted on 2023-03-23 15:41  Mlianga  阅读(17)  评论(0编辑  收藏  举报

导航