Python--文件操做

Python 基礎-文件操做

文件處理流程

1.打開文件,獲得文件句柄並賦值給一個變量編碼

2.經過句柄對文件進行操做spa

3.關閉文件日誌

 r模式,默認模式,文件不存在則報錯code

w模式,文件不存在則建立,文件存在則覆蓋blog

a模式,文件不存在則建立,文件存在則不會覆蓋,寫內容會以追加的方式寫(寫日誌文件的時候經常使用),追加模式是一種特殊的寫模式utf-8

b(rb,wb,ab)模式:不用加encoding:utf-8it

基本操做

打開文件

open(path, flag[, encoding][, errors])
path:要打開文件的路徑
flag:打開文件的方式
r   以只讀的方式打開文件,文件的描述符放在文件的開頭   
rb  以二進制格式打開一個文件用於只讀,文件的描述符放在文件的開頭
r+  打開一個文件用於讀寫,文件的描述符放在文件的開頭
w   打開一個文件只用於寫入,若是該文件已經存在會覆蓋,若是不存在則建立一個新文件
wb  打開一個文件只用於寫入二進制,若是該文件已經存在會覆蓋,若是不存在則建立一個新文件
w+  打開一個文件用於讀寫,若是該文件已經存在會覆蓋,若是不存在則建立一個新文件
a   打開一個文件用於追加,若是文件存在,文件描述符將會放在文件末尾
a+  
encoding:編碼格式
errors:錯誤處理

path = r"C:\Users\Desktop\file1.txt"

#ignore  忽略錯誤
f = open(path, "r",encoding="gbk")

打開文件的模式有:class

  • r ,只讀模式【默認模式,文件必須存在,不存在則拋出異常】
  • w,只寫模式【不可讀;不存在則建立;存在則清空內容】
  • x, 只寫模式【不可讀;不存在則建立,存在則報錯】
  • a, 追加模式【可讀;   不存在則建立;存在則只追加內容】

"+" 表示能夠同時讀寫某個文件test

  • r+, 讀寫【可讀,可寫】
  • w+,寫讀【可讀,可寫】
  • x+ ,寫讀【可讀,可寫】
  • a+, 寫讀【可讀,可寫】

 "b"表示以字節的方式操做基礎

  • rb  或 r+b
  • wb 或 w+b
  • xb 或 w+b
  • ab 或 a+b

 注:以b方式打開時,讀取到的內容是字節類型,寫入時也須要提供字節類型,不能指定編碼

 讀文件內容

# 一、讀取文件所有內容
str1 = f.read()
print(str1)

# 二、讀取指定字符數
str2 = f.read(10)
print("*"+str2+"*")
str3 = f.read(10)
print("*"+str3+"*")

# 三、讀取整行,包括"\n"字符
str4 = f.readline()
print(str4)
str5 = f.readline()
print(str5)

# 四、讀取指定字符數
str6 = f.readline(10)
print(str6)

# 五、讀取全部行並返回列表
list7 = f.readlines()
print(list7)

# 六、若給定的數字大於0,返回實際size字節的行數
list8 = f.readlines(20)
print(list8)

# 七、修改描述符的位置
f.seek(10)
str9 = f.read()
print(str9)

關閉文件

f.close()

#   一個完整的過程
try:
    f1 = open(path,"r", encoding="gbk")
    print(f1.read())
finally:
    if f1:
        f1.close()
with open(path,"r",encoding="gbk") as f2:
    print(f2.read())

寫文件

path = r"C:\Users\Desktop\file4.txt"
f = open(path,"w")

#   一、將信息寫入緩衝區
f.write("lee is a good man")

#   二、刷新緩衝區
#   直接把內部緩衝區的數據馬上寫入文件,而不是被動的等待自動刷新緩衝區寫入
f.flush()
f.write("lee is a good man\n")
f.close()

with open(path,"a") as f:
    f.write("good man")
with open('a.txt','w')  as  f:
  pass

with open('a.txt','r')  as read_f,open('b.txt','w')  as  write_f:
  data=read_f.read()
  write_f.write(data)
path = r"C:\Users\yanji\Desktop\day7\test1"
with open(path,"wb") as f3:
    str = "lee is a good man"
    f3.write(str.encode("utf-8"))
with open(path,"rb") as f2:
    data = f2.read()
    print(data)
    print(type(data))
    newDate = data.decode("utf-8")
    print(newDate)
    print(type(newDate))
相關文章
相關標籤/搜索