首页 > 代码库 > ptyhon之路day3-文件处理及函数1
ptyhon之路day3-文件处理及函数1
文件处理
文件处理流程
1 打开文件,得到文件句柄并赋值给一个变量
2 通过句柄对文件进行操作
3 关闭文件
1python中操作文件
f = open(‘a.txt‘,‘r‘,encoding=‘gbk‘) #windows操作系统默认gbk编码
open是打开文件 是向操作系统发起请求来打开一个文件
f 是应用程序存到内存中 f->打开文件对应着
f.read()
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‘]()
ptyhon之路day3-文件处理及函数1