Python 文件操做

1.  open()  file.close()

# 關閉後的文件不能再進行讀寫操做,不然會觸發ValueError
fo = open('a.txt', 'r')
print('打開a.txt的文件')
fo.close()

 

 

2.  flush()

# flush()用來刷新緩衝區,將緩衝區的數據馬上寫入文件
# 同時清空緩衝區,不須要是被動的等待輸出緩衝區寫入
# 通常狀況,文件關閉後會自動刷新緩衝區,但有時須要在關閉前刷新它,這時就須要使用flush()方法
fo =open('a.txt', 'wb')
print('打開a.txt的文件')
fo.flush()
fo.close()

 

 

3.  打開文件的模式

  ①. 只讀模式 r (默認)函數

  ②. 只寫模式 w (不可讀,不存在則建立,存在則覆蓋)spa

  ③. 追加模式 a (可讀,不存在則建立,存在則只追加內容)操作系統

  ④. '+' 表示可同時讀寫某個文件:指針

    r+ 可讀寫文件(可讀、可寫、可追加)code

    w+ 寫讀對象

    a+ 追加blog

  ⑤. ‘u’表示在讀取時,可將 \r \n  \r\n  自動轉換成 \n (與 r 或者 r+ 模式同時使用)utf-8

   由於Windows系統的換行符爲\r\n,Linux系統的換行符爲 \n , 加上u則能自動把\r\n轉換成\nit

    ruio

    r+u

  ⑥. ‘b’ 表示處理二進制文件

    rb

    wb

    ab

 

4.

# # 讀取文件內容(可指定每次讀取字符數)
# with open('a.txt', 'r+', encoding='utf-8') as f:
#     ret = f.read(8)
#     print(ret)

 

 

5.

# 讀取數據(可指定讀取字符數),存爲list顯示
# f = open('b.txt', 'r+', encoding='utf-8')
# ret = f.readlines()
# print(ret)
# f.close()

 

 

6.

# # 讀取一行數據
# f = open('b.txt', 'r+', encoding='utf-8')
# ret = f.readline()
# print(ret)
# f.close()

 

 

7.

# 判斷文件是否可讀(不可讀則報錯「No such file or directory:」)
f = open('b.txt', 'r+', encoding='utf-8')
ret = f.readable()
print(ret)
f.close()

 

 

8.

# 獲取指針位置
f = open('b.txt', 'r+', encoding='utf-8')
# 先讀取8個字符
ret = f.read(8)
# 查看當前指針位置
print('pointer position: %s' %f.tell())
print(ret)
# 重置指針到起始位
f.seek(0)
# 查看指針當前位置
print('pointer position: %s' %f.tell())
f.close()

 

 

9.

# 指定文件中指針位置
f = open('b.txt', 'r+', encoding='utf-8')
# 先讀取8個字符
ret = f.read(8)
print(ret)
# 重置指針到起始位
f.seek(0)
# 在從新讀取8個字符
ret = f.read(8)
print(ret)
f.close()

 

 

10.

# 截取文件數據,僅保留指定以前數據(指定字節數)
f = open('b.txt', 'r+', encoding='utf-8')
# 文件只保留前8個字節數據,文件後面的數據所有刪除
f.truncate(8)
ret = f.read()
print(ret)
f.close()

 

 

11.  fileno()

# fileno()返回一個整型的文件描述(file desccriotor FD 整型)
# 可用於底層操做系統的I/O操做
fo = open('b.txt', 'wb')
print('文件名爲:',fo.name)
fid = fo.fileno()
print('文件描述爲:',fid)
fo.close()

 

 

12.  isatty()

# isatty()檢測文件是否鏈接到一個終端設備
# 若是是返回True,不然返回False
fo = open('b.txt', 'wb')
print('文件名爲:',fo.name)
ret = fo.isatty()
print('返回值:',ret)
fo.close()

 

 

13.  next()

# Python3中的file對象不支持next()方法
# Python3的內置函數next()經過迭代器調用__next()__方法返回下一項
# 在循環中,next()方法會在循環中調用,該方法返回文件的下一行
# 若是到達結尾(EOF)則觸發Stopiteration
fo = open('b.txt', 'r')
for index in range(5):
    line = next(fo)
    print('第%d行 - %s'%(index, line))
相關文章
相關標籤/搜索