1. 程式人生 > >老男孩Day8

老男孩Day8

絕對路徑 路徑和 byte 操作 post utf-8 常用方法 字符串 col

今天是老男孩培訓的第8天,大致內容整理如下:

1.文件的操作:

  1.文件路徑:文件路徑分為絕對路徑和相對路徑,絕對路徑指從根目錄到指定文件,詳細的路徑。相對路徑指你所在位置的同一位置的文件。

  2.文件的編碼方式,字符串形式(str)居多

  3.操作方式:只讀,只寫,追加,讀寫等等。。。

  先建立一個文檔,內容為‘AAA’

  

f = open(a,mode=r,encoding=utf-8)
content = f.read()
print(content)
f.close()

技術分享圖片

要註意的是,以什麽編碼形式存儲的文件,就要以什麽形式打開,否則就會亂碼,非文字類用‘rb’(byts)

只寫:w

  

f = open(a,mode=w,encoding=utf-8)
f.write(BBB)
f.close()

技術分享圖片  該操作將原有的文檔a清空然後寫入‘BBB‘註意會清空原有內容,如果沒有該文件則創建文件

byte也是用‘wb’

追加:

  

f = open(a,mode=a,encoding=utf-8)
f.write(CCC)
f.close()

技術分享圖片該操作不會清楚原有內容,故為追加,bytes類型為ab

讀寫:

  

f = open(a,mode=r+,encoding=utf-8)
print(f.read())
f.write(
DDD) f.close()

技術分享圖片

f = open(a,mode=r+,encoding=utf-8)
f.write(DDD)
print(f.read())
f.close()

技術分享圖片技術分享圖片**這裏的意思是,在讀寫操作中先寫後讀也是存在的,但是先寫後讀會在光標處,也就是一開始加入你的字符,然後從光標出讀,也就是寫的內容不會讀。byts是r+b

寫讀:

  

f = open(a,mode=w+,encoding=utf-8)
f.write(EEE)
print(f.read())
f.close()

技術分享圖片因為是w+所以依舊會先清空

常用方法:

  .seek()  光標移動

f = open(a,mode=r,encoding=utf-8)
f.seek(2)
content = f.read()
print(content)
f.close()

技術分享圖片文件中的是EEE,為什麽會讀出一個E呢?因為你用seek移動到了第二個字節處,再讀就是只有一個E

f = open(a,mode=r,encoding=utf-8)
f.seek(3)
content = f.read()
print(content)
f.close()

技術分享圖片技術分享圖片為什麽只少輸出一個呢?因為UTF-8中,一個中文3字節,而seek方法按字節移動,如果是2則會報錯。

.tell()  告訴你光標的位置

  

f = open(a,mode=r,encoding=utf-8)
f.seek(3)
content = f.tell()
print(content)
f.close()

技術分享圖片因為seek是按字節,所以tell也是按照字節

.readtable()

  是否可讀

.truncate()

  截取一段去讀

.readline()

  一行一行讀

.readlines()

  每一行當成列表中的一個元素

在操作中也可以使用

with open () as 句柄

來代替原有的

= open()

.close()

編碼的補充:

  bytes轉str

  .decode()

  

老男孩Day8