日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

.npy文件_python——文件读写

發布時間:2023/12/10 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .npy文件_python——文件读写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:Python中讀寫文件的方法

1.open()函數

open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)

  • file : 是一個 path-like object,表示將要打開的文件的路徑,可以是絕對路徑也可以是相對路徑,也可以是要被封裝的整數類型文件描述符。如果是文件描述符,它會隨著返回文件對象關閉而關閉,除非 closefd 被設為 False 。
  • mode:文件打開的模式

'r':讀取文件(默認)

'w':向文件寫入,并先截斷文件

'x' 排它性創建 一個文件,如果文件已經存在則失敗

'a':在文件末尾追加寫入

'b':二進制模式

't':文本模式(默認)

'+':可讀也可以寫

  • buffering

buffering 是一個可選的整數,用于設置緩沖策略。

  • 傳遞0以切換緩沖關閉(僅允許在二進制模式下)
  • 選擇行緩沖(僅在文本模式下可用),
  • 并且>1的整數以指示固定大小的塊緩沖區的大小(以字節為單位)。
  • 如果沒有給出 buffering 參數,則默認緩沖策略的工作方式如下:
    • 二進制文件以固定大小的塊進行緩沖;使用啟發式方法選擇緩沖區的大小,嘗試確定底層設備的“塊大小”或使用 io.DEFAULT_BUFFER_SIZE。在許多系統上,緩沖區的長度通常為4096或8192字節。
    • “交互式”文本文件( isatty() 返回 True 的文件)使用行緩沖。其他文本文件和二進制文件一樣。
    • encoding

    encoding 是用于解碼或編碼文件的編碼的名稱。僅僅在文本模式下使用。默認編碼是依賴于平臺的(不管 locale.getpreferredencoding() 返回何值)。

    可以使用任何Python支持的 text encoding 。有關支持的編碼列表,請參閱 codecs 模塊。

    例如:

    f=open('/Users/michael/notfound.txt', 'r') f.read() f.close()

    2. with 關鍵字

    在處理文件對象時,最好使用 with 關鍵字。

    優點:

    1.當子句體結束后文件會正確關閉,即使在某個時刻引發了異常也能關閉。

    2.with 相比等效的 try-finally 代碼塊要簡短得多:

    with open('workfile') as f: read_data = f.read() f.closed

    3.文件對象的方法

    f.read(size)

    調用f.read(size)讀取文件內容,在文本模式下,它會讀取一些數據并將其作為字符串返回,在二進制模式下,將數據作為字節串對象返回。

    size是一個可選的數值參數。

    • 當size被省略或者為負數時,將讀取并返回整個文件的內容;

    如果文件的大小是你的機器內存的兩倍就會出現問題。

    • 當取其他值時,將讀取并返回至多size個字符(在文本模式下)或size個字節(在二進制模式下)。
    • 如果已到達文件末尾,f.read()將返回一個空字符串 ('')。
    >>> f.read() 'This is the entire file.n' >>> f.read() ''

    f.readline()

    讀取文件的一行。如果到達文件的末尾就返回一個空的字符串。如果讀取一個空行,就使用'n'表示,即該字符串只包含一個換行符。

    >>> f.readline() 'This is the first line of the file.n' >>> f.readline() 'Second line of the filen' >>> f.readline() ''

    如果要逐行讀取文件,也可以一下方法:

    >>> for line in f: ... print(line, end='') ... This is the first line of the file. Second line of the file

    f.write(string)

    會把 string 的內容寫入到文件中,并返回寫入的字符數。:

    >>> f.write('This is a testn') 15

    在寫入其他類型的對象之前,在文本模式下,需要先把它們轉化為字符串,在二進制模式下,需要先把它們轉化為字節對象

    >>> value = ('the answer', 42) >>> s = str(value) # convert the tuple to string >>> f.write(s) 18

    讀寫2進制文件(圖片)

    >>> f= open("./440.jpeg",'rb')>>> a=f.read() >>> len(a) 11024>>> f2=open('./person.jpeg','wb') >>> f2.write(a) 11024

    f.tell()

    f.tell() 返回一個整數,給出文件對象在文件中的當前位置,在二進制模式下為從文件開始的字節數,以及文本模式下從文件開始的字符數。

    f.seek(offset, whence)

    要改變文件對象的位置,請使用 f.seek(offset, whence)。 通過向一個參考點添加 offset 來計算位置;參考點由 whence 參數指定。

    • whence 的 0 值表示從文件開頭起算,
    • 1 表示使用當前文件位置,
    • 2 表示使用文件末尾作為參考點。
    • whence 如果省略則默認值為 0,即使用文件開頭作為參考點。

    注意:在文本文件中,只允許相對于文件開頭搜索

    2進制文件

    >>> f = open('workfile', 'rb+') >>> f.write(b'0123456789abcdef') 16 >>> f.seek(5) # Go to the 6th byte in the file 5 >>> f.read(1) b'5' >>> f.seek(-3, 2) # Go to the 3rd byte before the end 13 >>> f.read(1) b'd'

    字符文件

    >>> f.write("this is a txtn") 14 #剛寫完文件所以在最后一位 >>> f.tell() 15 #讀一個字節,為空字符串 >>> f.read(1) '' #設置文件指針到位置0>>> f.seek(0) 0>>> f.tell() 0 #讀一個字符 >>> f.read(1) 't' >>> f.read(2) 'hi' >>> f.tell() 3 >>> f.read() 's is a txtn' >>> f.tell() 15

    二:numpy中讀寫文件的方法

    NumPy二進制文件(NPY,NPZ)

    在python中有兩種二進制文件:npy和npz文件,npy文件保存一個array,npz保存多個array,

    并且可以指定關鍵字,默認的關鍵字是0,1,2.....

    npy文件:

    >>> np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]])) >>> np.load('/tmp/123.npy') array([[1, 2, 3],[4, 5, 6]])

    npz文件:

    >>> a=np.array([[1, 2, 3], [4, 5, 6]]) >>> b=np.array([1, 2]) >>> np.savez('/tmp/123.npz', a=a, b=b) >>> data = np.load('/tmp/123.npz') >>> data['a']array([[1, 2, 3],[4, 5, 6]]) >>> data['b'] array([1, 2]) >>> data.close()

    總結

    以上是生活随笔為你收集整理的.npy文件_python——文件读写的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。