ptyhon之路day3-文件处理及函数1

文件处理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']()

相关文章
相关标签/搜索