Python內置函數之--open


          open

1、open函數,該函數用於處理文件

2、open("文件名,模式(用什么方式打開),編碼")

    a、基本的打開方式

        

#  1、只讀,r
f = open("ha.log","r")

#2、只寫,w,[文件不可讀;文件不存在則創建;存在則清空內容]
f = open("ha.log","w")
f.write("123")
f.close()

#3、x, 只寫模式【不可讀;不存在則創建,存在則報錯】
f = open("ha1.log","x")
f.write("456")
f.close()

#4、追加模式【不可讀;不存在則創建;存在則只追加內容;】
f = open("ha1.log","a")
f.write("666")
f.close()

    b、字節的方式打開

#1、只讀,rb
f = open("ha.log","rb")
data = f.read()
f.close()
print(type(data))

#2、只寫
f = open("ha.log","wb")
f.write(bytes("中國",encoding="utf-8"))
f.close()

      c、區別:

#普通打開
#普通打開已經經過內部python操作,直接是UTF-8,rb方式則需要自己轉換
#===python內部將101010 => 轉換成字符串,通過字符串操作
#010101 =>  python解釋器  => 程序員

#二進制打開方式
#rb方式打開只會得到2進制的代碼,需要自己轉換成utf-8

      d、"+" 表示可以同時讀寫某個文件

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

         1、r+

# r,末尾追加,指針移動到最后
f = open("ha.log","r+",encoding="utf-8")
#指針為0,起始位置
#f.close()
#從開始向后讀
#寫,追加,指針調到最后
 

      2、w+,x+

#w+,先清空文件內容,再寫之后,就可以讀取
#先清空,之后寫的才能讀,寫,指針到最后
f = open("ha.log","w+",encoding="utf-8")
f.write("吳文")
f.seek(0)#指針指向0
data = f.read()
f.close()
print(data)
#x+基本同上,如果文件存在,則報錯

    3、a+

 a+
a,打開的同時,指針已經到最后了,文件里面的內容讀不到
#寫時,也會追加,指針放到最后
f = open("ha.log","a+",encoding="utf-8")
data = f.read()
f.close()
print(data)

3、  文件的操作功能

#===============================
# f.tell()#獲取指針的位置
# f.seek(num)#調整指針的位置
#===============================
# close         關閉文件
# flush         強制刷新文件內部緩沖區
# read          讀取文件
# readline      讀取一行
# seek          文件中指針位置
# tell          獲取指針的位置
# truncate      截斷數據,僅保留指針指定之前數據
# write         讀取文件

4、讀取每一行的內容

f = open("ha.log","r",encoding="utf-8")

for line in f:
     print(line)  =>#f.readline,可以讀取所有行的內容

5、with open

#當with代碼塊執行完畢時,內部會自動關閉並釋放文件資源。
with open("ha.log","r") as f:
    f.read()
#python內部會幫你關閉不用寫f.close

 

#同時打開2個文件
with open("log1","r") as boj1, open("log2","r") as obj2:
     pass

#打開2個文件並進行傳送數據
 with open("源文件","r") as obj1,open("新文件","w") as obj2:
     for line in obj1:
         obj2.write(line)
 #打開一個源文件,同時吧內容寫入一個新文件里面

 

6、lambda表達式

#lambda可以代替簡單的函數
def f1():
    return 123

 f2 = lambda :123

 def f3(a1,a2):
     return a1 + a2

 f4 = lambda a1,a2: a1+a2

 r1 = f1()
 print(r1)

 r2 = f2()
 print(r2)

 

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM