文件处理python
文件处理流程windows
1 打开文件,获得文件句柄并赋值给一个变量app
2 经过句柄对文件进行操做函数
3 关闭文件测试
1python中操做文件编码
f = open('a.txt','r',encoding='gbk') #windows操做系统默认gbk编码spa
open是打开文件 是向操做系统发起请求来打开一个文件操作系统
f 是应用程序存到内存中 f->打开文件对应着翻译
f.read()code
r模式在文件没有的时候 不会自动建立文件
b模式即直接从硬盘中读取bytes
f=open('a.txt','rb')
print(f.read().decode('utf-8'))
w文本模式的写
文本模式的写 必须指定编码,文件不存在建立,文件存在则清空(实际是建立一个新文件覆盖掉)
f=open('a.txt','w',enconding='utf-8')
print(f.writable()) #TRUE 注:w只能写 r只能读
a文本模式的追加
文本模式的追加,文件不存在建立,文件存在光标默认在最后位置追加
文本追加须要使用光标 在光标的位置进行插入
f=open('b.txt','a',enconing='utf-8')
print(f.tell())
如何测试使用a模式下是否能写
f.write('111\n') #FALSE
r+ w+ b+
读的时候写 写的时候读
rb模式即直接从硬盘读取 编码基本不用考虑
f=open('a.txt','rb')
wb 模式
f=open('a.txt','wb')
f.write('你好啊').encode('utf-8')
ab模式
也是写模式 写到最后,每次都须要encode操做才能写入
能够发现以前的操做都是open 并无关闭文件 这样会致使内存溢出 并无回收,保证不占操做系统资源
不论f.close()仍是其余的都是向操做系统发送命令进行执行
接下来是with open
with open ('file.txt','w',enconding='utf-8')
f.write(‘1111\n’)
简单copy程序
f=open('test.jpg','rb')
print(f.read())
with open ('test.jpg','rb') as read_f,open('test1.jpg','wb') as write_f
for line in read_f:
write_f.write(line)
-------------------
import sys
if len(sys.argv) <3:
print('copy.py source.file')
sys.exit()
with open(r'%s' sys.argv[1],'rb') as read_f,\
open(r'%s' sys.argv[2],'wb') as write_f:
for line in read_f:
write_f.write(line)
文件的其余操做
f=open('a.txt','r',enconding='utf-8')
print(f.read(3)) #读的字符 中文算一个 英文一个字母一个
f=open('a.txt','rb')
print(f.read(3).decode('utf-8')) #读取三个字节
字符编码:
什么是字符编码?
把人类的字符翻译成计算机能认识的数字
字符编码标常见
ascii
gbk
utf-8
unicode
unicode---->encode('utf-8') ---->bytes
bytes----->decode('utf-8')----unicode
encode编码
decode解码
原则:字符以什么格式编译的存,就要以什么格式编码取
ps:字符编码在内存中的格式都是unicode,硬盘中是bytes
在python3中字符串分两种
x='abc' 存成unicode
y=x.encode('utf-8') 存成bytes
1 什么是函数?
2 为何要用函数? 3 函数的分类:内置函数与自定义函数 4 如何自定义函数 语法 定义有参数函数,及有参函数的应用场景 定义无参数函数,及无参函数的应用场景 定义空函数,及空函数的应用场景 5 调用函数 如何调用函数 函数的返回值 函数参数的应用:形参和实参,位置参数,关键字参数,默认参数,*args,**kwargs
6 高阶函数(函数对象)
#函数是第一类的对象:指的是函数能够被当作数据传递
def foo():
print('from foo')
#1 被赋值
# f=foo
# print(f)
# f()
#2 能够当作参数传入
# def wrapper(func):
# # print(func)
# func()
# wrapper(foo)
#3 能够当作函数的返回
def wrapper(func):
return func
# res=wrapper(foo)
# print(res)
#4 能够当作容器类型的元素
# cmd_dic={# 'func':foo# }## print(cmd_dic)## cmd_dic['func']()