Python之文件操作

文件操作

1.文件初识

  在python中我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种操作了.

2.只读操作(r,rb)

  我们先来看一个简单的只读程序:encoding表示编码集,

f=open("0608练习.py",mode="r",encoding="UTF-8")
content=f.read()
print(content)

尖峰时刻
nfdjnk决定能否及时缴纳
fkf
获得较好的经济
十八届

  而当类型为"rb"时,读取出来的数据是bytes类型,就不能再选择encording类型了

f=open("0608练习.py",mode="rb")
content=f.read()
print(content)

b'xe5xb0x96xe5xb3xb0xe6x97xb6xe5x88xbb
nfdjnkxe5x86xb3xe5xaex9axe8x83xbdxe5x90
xa6xe5x8fx8axe6x97xb6xe7xbcxb4xe7xbaxb3 fkf xe8x8exb7xe5xbex97xe8xbex83xe5xa5
xbdxe7x9ax84xe7xbbx8fxe6xb5x8e xe5x8dx81xe5x85xabxe5xb1x8a
'

  rb的作用,在读取非文本文件的时候,比如MP3,音频,视频等文件时,就要用到rb.

  绝对路径和相对路径

  a.绝对路径:从磁盘根目录开始一直到该文件名

  b.相对路径根据当前程序所在文件与具体要打开文件的相对位置确定路径,用"../"表示退出,推荐使用相对路径!

  读取文件的方法

  a.  .read()  将文件中的内容全部读取出来,占内存,文件过大的话容易崩溃

  b.  .read(n) 读取n个字符,注意,如果再次读取,那么会在当前位置继续读下去而不是从头开始读,如果使用的是rb模式,则读出来的是n个字节.

  c.  .readline() 读取一行数据,

f=open("0608练习.py",mode="r",encoding="UTF-8")
content=f.readline()
content1=f.readline()
content2=f.readline()
content3=f.readline()
content4=f.readline()
print(content)
print(content1)
print(content2)
print(content3)
print(content4)


尖峰时刻

nfdjnk决定能否及时缴纳

fkf

获得较好的经济

十八届

  readline()结尾,每次会有一个 ,我们需要使用.strip()来去除 及空格

f=open("0608练习.py",mode="r",encoding="UTF-8")
content=f.readline().strip()
content1=f.readline().strip()
content2=f.readline().strip()
content3=f.readline().strip()
content4=f.readline().strip()
print(content)
print(content1)
print(content2)
print(content3)
print(content4)


尖峰时刻
nfdjnk决定能否及时缴纳
fkf
获得较好的经济
十八届

  d.  .readlines()

  将每一行形成一个元素放到一个列表里,将所有的内容都读取出来,也容易造成系统崩溃

  e.  .循环读取    这种方法是最好的,每次读取一行内容,不会造成内存溢出

f=open("0608练习.py",mode="r",encoding="UTF-8")
for line in f:
    print(line.strip())

尖峰时刻
nfdjnk决定能否及时缴纳
fkf
获得较好的经济
十八届

  注意:读取完文件一定要加f.close()关闭文件

3.只写操作(w,wb)

  写的时候注意,如果没有文件会创建文件.如果已有文件,则会将源文件的内容删除,再创建新的内容

4.追加操作(a,ab)

  在追加模式下,我们写入的内容会被追加到文件的结尾

5.r+读写

  读写模式,必须是先读,因为光标默认是在开头

6.w+写读

  先将所有的内容清空,然后写入,最后读取但是读取的内容是空的,不常用

7.a+写读(追加写读)

  苟富贵

8.其他操作方法

  风高放火

9.文件的修改以及另一种打开文件句柄的方式

  苟富贵

原文地址:https://www.cnblogs.com/wdbgqq/p/9157167.html