3、python全栈之路文件操作

三、文件操作

1、文件操作

从硬盘中读取utf-8编码的数据,字符串转换成unicode编码的数据到内存中,文件在硬盘上时,一定是utf-8gbk等模式的二进制编码

文件操作的三要素

  1. 路径:D:\美女模特空姐护士联系方式.txt

  2. 编码:utf-8

  3. 模式:

  - rb

  - r

  - r+      

  -r+b

  - wb

  - w

  - w+b

  - ab

  - a

  - a+

  - a+b

1.1 open()read()close()

PS: 打开文件后,记着关闭文件

obj = open(文件路径,mode='rb')

xxxx

obj.close()

自动关闭

with open(文件路径,mode='rb') as obj:

    obj.read()

# 代码执行完毕后,自动关闭文件

读文件

 

1.1.1 rbr

网络编程的时候,有图片、音乐、视频等格式的文件用rbwb格式

obj = open('D:\美女模特空姐护士联系方式.txt',encoding='utf-8',mode='r')
content = obj.read()
obj.close()
print(content,type(content))

打开windows下的文件开始要加双斜线或加'r'

 

1.1.2 r+r+b

读写,文件先读再追加

#打开文件的时候:不清空文件

#当用户读取操作之后,写的所有内容都变成追写

#当用户不执行读操作,写默认从开始覆盖

不要同时又读又写

 

1.2 write()writelines()

write() 写一个文件

writelines() 将一个列表的内容写入文件

1.2.1 wbww+b

原文件不存在则创建文件,原文件存在则将原文件覆盖

 

1.2.2 abaa+a+b

追加,原文件不存在则创建文件,原文件存在则在文件后追加内容

 

1.3 seek()

将光标指定到指定位置

seek(2) 指的是光标在第二个自己后面

read(2) 如果是'r'模式则读前两个字符,如果是'rb'模式则读前两个字节

 

控制光标的位置

 

三种模式

0模式、1模式、2模式

默认0模式光标以文件开头为参照位置

12模式必须在b模式下使用

1模式光标以当前光标所在的位置为参照位置

 

2模式光标以文件结尾为参照位置

 

1.4 tell()

读取当前光标所在位置

1.5 flush()

将内存中内容刷到硬盘

1.6 readline()readlines()

readline() 读一行,返回一个字符串

readlines() 读整个文件,返回一个列表,每行是一个元素

1.7 for循环

一行一行的读出来

# 等价于 py2 obj.xreadlines()

for line in obj:

  print(line)

 

1.8 文件修改

 

固定模式:

#读写
#修改
f = open('file',encoding='utf-8')
f2 = open('file_bak','w',encoding='utf-8')
for line in f:
    user_list = line.split('|')
    print(user_list)
    user_list[0] = user_list[0]+'_somebody'
    #print(user_list)
    user_str = '|'.join(user_list)
    print(user_str)
    f2.write(user_str)
f.close()
f2.close()
import os   #模块- 用来和操作系统交互的模块
os.remove('file')  #删除一个文件
os.rename('file_bak','file')  #重命名一个文

原文地址:https://www.cnblogs.com/xiaojinyu/p/7464776.html