Python3文件操作

Python3 文件操作

打開方式

  • 手動擋open+close
  • 自動擋with,自關(guān)閉
    常見操作
  • w, r, a, b
  • write
  • readline
  • readlines
  • seek
  • tell
  • read
    相關(guān)模塊
  • fnmatch
  • glob
  • pickle
  • StringIO
  • shelve
  • ……
手動檔
# 打開文件
f = open('文件名', '文件打開方式')
# f 是文件對象指針,用來進行讀寫操作
# 關(guān)閉文件
f.close()

文件的三種操作模式:讀r、寫w、追加a

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、永靖網(wǎng)站定制設(shè)計、自適應品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、電子商務(wù)商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為永靖等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

示例代碼:

#!/usr/bin/python3
import os
# 切換到測試目錄
os.chdir(r'D:\python\test')
f = open('ss.txt', 'w') # 用寫的方式打開文件,不存在則創(chuàng)建
f.write('hello python3!')
f.close()
自動檔

寫模式下文件不存在可以自動創(chuàng)建,而讀模式不能自動 創(chuàng)建
示例代碼:

#!/usr/bin/python3
with open('ss1.txt', 'w') as f:
    f.write('Hello Python3' * 8)

with open('ss1.txt') as f:   # r模式是默認,可以不寫
    data = f.read()           # 一次讀出所有內(nèi)容,作為一個字符串保存到變量
    print(data)

with open('ss1.txt', 'a') as f:
    f.write('11111\n')
    f.write('1111111\n')
    f.write('111111111\n')

with open('ss1.txt') as f:
    print(f.readline())
    print(f.readline())  # readline() 每次讀取一行

with open('ss1.txt') as f:
    print(f.readlines())        # readlines()讀取所有行與read()類似,但readlines()帶格式,可以按行輸出
tell() & seek()
  • tell() 告訴我們文件讀到的位置
  • seek()會返回到某個位置
    示例代碼:
#!/usr/bin/python3

f = open('ss1.txt')
print(f.tell())      # 告訴我們讀到的位置
print(f.readline())
print(f.tell())
print(f.readline())
f.seek(0)           # 返回到第幾個位置
print(f.tell())
print(f.readline())
f.seek(0)
print(f.readline())
f.close()
StringIO

虛擬文件、臨時文件,不需要真保存到磁盤

#!/usr/bin/python3

import io
output = io.StringIO()
output.write('第一行代碼\n')
print('試一下print到文件:', file=output)

# 取出內(nèi)容
contents = output.getvalue()
print(contents)
output.close()

輸出:
第一行代碼
試一下print到文件:

shelve

用類似于字典的方式存儲任意的python對象

#!/usr/bin/python3
import shelve
with shelve.open('test.txt') as so:
        so['yhy'] = '這是我'

with shelve.open('test.txt') as so:
    print(so['yhy'])

輸出:
這是我

pickle

用二進制來讀寫文件
相關(guān)方法:

  • dumps # 將數(shù)據(jù)通過特殊的形式轉(zhuǎn)換為只有python語言認識的字符串,不寫入文件
  • dump # 將數(shù)據(jù)通過特殊的形式轉(zhuǎn)換為只有python語言認識的字符串,并寫入文件
  • loads # 將pickle數(shù)據(jù)轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu)
  • load # 從數(shù)據(jù)文件中讀取數(shù)據(jù),并轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu)
    示例代碼:
#!/usr/bin/python3

import pickle
dicta = {'1':{'日期':'1.2','事項': 'wan','耗時':'3'}}
with open('D:\python\memo.pkl', 'wb') as e:
            e.write(pickle.dumps(dicta))

with open('D:\python\memo.pkl', 'rb') as f:
    stra = pickle.load(f)
print(stra)

輸出:
{'1': {'日期': '1.2', '事項': 'wan', '耗時': '3'}}

當前名稱:Python3文件操作
網(wǎng)址分享:http://muchs.cn/article18/phogdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站設(shè)計公司、App設(shè)計、微信小程序、響應式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司