8、文件操作一

文件操作

对文件操作流程:
  • 打开文件,得到文件句柄并赋值给一个变量
  • 通过句柄对文件进行操作
  • 关闭文件
f = open("yesterday")  #文件句柄
data = f.read()
data2 = f.read()
print(data)
print("分割线".center(50, "-"))
# 文件已经读取过一遍,文件指针已经读到了最后,再去读取文件,实际是从最后开始读取的。
print(data2)
打开文件的模式有:
  • r,以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。【可读;不可写;不可追加】
  • w,以只写方式打开文件。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。不可读。【不可读;可写;不可追加】
  • a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。【不可读;可写;可追加】
f = open("yesterday", "w")
# 如果读文件值设置了"w"读权限,是创建文件,如果文件已存在,将会覆盖。

f.write("\n吃了没?\n")
f.write("吃过了")

f.close()
"+" 表示可以同时读写某个文件
  • r+,打开一个文件用于读写。文件指针将会放在文件的开头。【可读;可写;可追加】【指针在前】
f = open("yesterday", "r+")
data = f.read()
print(data)

f.write("\n吃了没?\n")
  • w+,打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。【可读;可写;不可追加】
f = open("yesterday", "w+")
data = f.read()
print(data)

f.write("\n吃了没?\n")
  • a+,打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。【可读;可写;可追加】【指针在后】
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
  • rU
  • r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
  • rb
  • wb
  • ab
模式 r r+ w w+ a a+
+ + + +
+ + + + +
创建 + + + +
覆盖* + +
追加 + + +
指针在开始 + + + +
指针在结尾 + +
graph TD
Openfile --> For?
For? --> | onlyReading | r(R: InitialPosition beginning)
For? --> | onlyWriting | 覆盖1?
For? --> | Reading And Writing |覆盖2?
覆盖1? --> | Yes | w
覆盖1? --> | No | a(A: InitialPosition end)
覆盖2? --> | Yes | w+
覆盖2? --> | No | InitialPosition
InitialPosition --> | Begin | r+
InitialPosition --> | End | a+

你可能感兴趣的:(8、文件操作一)