File

day9:1030

一、(文件路径,操作模式(默认读模式)(r,w,a,b),编码(utf-8))
f = open('歌词','w',encoding'utf-8') 指定为’utf-8'中文就不会报错
f:文件操作符 文件句柄 文件操作符f file f_obj f_handler fh
open打开文件依赖操作系统提供的途径,操作系统有自己的编码,open在打开文件的时候默认使用操作系统编码:win:gbk mac/linux: utf-8

f = open('歌词','w') 以写模式打开文件(会清空原有内容)
f.wrinte('sunv') 写内容到文件
f.close() 关闭文件 (必须写)
print(f.writable()) :判断文件是否可写(返回bool值)
print(f.readable()) :判断文件是否可读(返回bool值)
del f :主动释放了一个py程序内存中的变量 (可写可不写)
r+:可读可写
1、先读后写:写是追写
2、先写后读:从头开始写(会出错)
w+:可写可读(文件直接清空,虽然可添加,但是读取的时候需要移动光标)
a+:追加写,也得移动光标
一般情况下,要么读,要么 写,很少读写一起用
常用的是:r、w、a、
rb、wb、ab(不需要指定编码)
f.read(n):读n个字符(默认全读)
seek:
seek(n):移动光标到指定位置(字节),有返回值n
seek(0) :移动到最开始
seek(0,2):移动到最末尾
# seek(0,1) :以当前位置移动(先不用了)
tell:告诉你当前光标的位置(字节)(换行符两个字节)
truncate(n):从文件开始的位置只保留n个字节的内容(seek在前面也没用)
二、
1、文件与py文件的执行在相同的路径下,直接读写,否则用绝对路径。
2、文件的路径,需要用取消转译的方式来表示:
3、如果以写的文件的方式打开一个文件,那么不存在的就会自动创建,存在的文件之前的内容会清空。
、读文件(含指针:前面读完后面不再读):
read() : r模式按字符读 rb: 按字节读
①一次性的读出文件的所有内容(一下整体读不好,占内存)
content = f.read()
print(content)
②读一部分(read(n),指定读五个单位)
print(read(5))
③一行一行读readline(strip:出掉空格,制表符,换行符)
缺:不知道读到什么位置文件结束
content = f.readline(读出来是字符串)
print(content)
④readlines返回一个列表,将文件中的每一行作为列表中的每一项返回一个列表(一下整体读不好,占内存)
f.readlines(读出来是列表)
⑤读:最常用(line拿到的每一项就是每一行)
for line in f:
print(line.strip)

b的打开方式(bytes):
读图片、音乐、视频等任何文件 传输,上传,下载 网络编程
四、文件的修改、删除
1.创建一个新文件
2.把原来的文件中的内容读出来
3.操作读出来的字符串,把字符串中的内容替换掉
4.把替换后的内容写到新文件里
5.删除源文件,新文件重命名成源文件的名字

 f = open('源文件',encoding='utf-8') # 
    f2 = open('新文件','w',encoding='utf-8') #
    for line in f:
        new_line = line.replace('原来','现在')
        f2.write(new_line)
    f.close() 
    f2.close()
    import os
    os.remove('源文件')
    os.rename('新文件','源文件')
五、修改文件
1.read()
2.for循环的形式逐行修改
3.只修改一行的内容,其他不变 -- 扩展例子(尽自己能力掌握)
六、with语句 == 文件的打开和关闭(根据个人喜好)
作业、
购物车的商品都写在文件里,完成文件解析后再做购物车
七、
对于py3环境:r:Python将会按照编码格式进行解析,read()操作返回的是str
rb:也即binary mode,read()操作返回的是bytes


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章