剛剛學完文件操作,現學現賣,這就整理起來咯。文件的操作,歸根結底就只有兩種:打開文件、操作文件
一、打開文件:文件句柄
=
open
(
'文件路徑'
,
'模式'
)
python中打開文件有兩種方式,即:open(...) 和 file(...),本質上前者在內部會調用后者來進行文件操作,在這里我們推薦使用open,解釋
二、操作文件
操作文件包括了文件的讀、寫和關閉,首先來談談打開方式:當我們執行 文件句柄
=
open
(
'文件路徑'
,
'模式'
) 操作的時候,要傳遞給open方法一個表示模式的參數:
打開文件的模式有:
- r,只讀模式(默認)。
- w,只寫模式。【不可讀;不存在則創建;存在則刪除內容;】
- a,追加模式。【可讀; 不存在則創建;存在則只追加內容;】
"+" 表示可以同時讀寫某個文件
- r+,可讀寫文件。【可讀;可寫;可追加】
- w+,先寫再讀。【這個方法打開文件會清空原本文件中的所有內容,將新的內容寫進去,之后也可讀取已經寫入的內容】
- a+,同a
"U"表示在讀取時,可以將 \r \n \r\n自動轉換成 \n (注意:只能與 r 或 r+ 模式同使用)
- rU
- r+U
- rbU
- rb+U
"b"表示處理二進制文件(如:FTP發送上傳ISO鏡像文件,linux可忽略,windows處理二進制文件時需標注)
- rb
- wb
- ab
以下是file操作的源碼解析:

1 class file(object): 2 3 def close(self): # real signature unknown; restored from __doc__ 4 關閉文件 5 6 """close() -> None or (perhaps) an integer. Close the file. 7 8 Sets data attribute .closed to True. A closed file cannot be used for 9 further I/O operations. close() may be called more than once without 10 error. Some kinds of file objects (for example, opened by popen()) 11 may return an exit status upon closing. 12 """ 13 14 def fileno(self): # real signature unknown; restored from __doc__ 15 文件描述符 16 17 """fileno() -> integer "file descriptor". 18 19 This is needed for lower-level file interfaces, such os.read(). """ 20 21 return 0 22 23 def flush(self): # real signature unknown; restored from __doc__ 24 刷新文件內部緩沖區 25 26 """ flush() -> None. Flush the internal I/O buffer. """ 27 28 pass 29 30 def isatty(self): # real signature unknown; restored from __doc__ 31 判斷文件是否是同意tty設備 32 33 """ isatty() -> true or false. True if the file is connected to a tty device. """ 34 35 return False 36 37 def next(self): # real signature unknown; restored from __doc__ 38 獲取下一行數據,不存在,則報錯 39 40 """ x.next() -> the next value, or raise StopIteration """ 41 42 pass 43 44 45 46 def read(self, size=None): # real signature unknown; restored from __doc__ 47 讀取指定字節數據 48 49 """read([size]) -> read at most size bytes, returned as a string. 50 51 If the size argument is negative or omitted, read until EOF is reached. 52 Notice that when in non-blocking mode, less data than what was requested 53 may be returned, even if no size parameter was given.""" 54 55 pass 56 57 def readinto(self): # real signature unknown; restored from __doc__ 58 讀取到緩沖區,不要用,將被遺棄 59 60 """ readinto() -> Undocumented. Don't use this; it may go away. """ 61 62 pass 63 64 65 def readline(self, size=None): # real signature unknown; restored from __doc__ 66 僅讀取一行數據 67 """readline([size]) -> next line from the file, as a string. 68 69 Retain newline. A non-negative size argument limits the maximum 70 number of bytes to return (an incomplete line may be returned then). 71 Return an empty string at EOF. """ 72 73 pass 74 75 def readlines(self, size=None): # real signature unknown; restored from __doc__ 76 讀取所有數據,並根據換行保存值列表 77 78 """readlines([size]) -> list of strings, each a line from the file. 79 80 Call readline() repeatedly and return a list of the lines so read. 81 The optional size argument, if given, is an approximate bound on the 82 total number of bytes in the lines returned. """ 83 84 return [] 85 86 87 88 def seek(self, offset, whence=None): # real signature unknown; restored from __doc__ 89 指定文件中指針位置 90 """seek(offset[, whence]) -> None. Move to new file position. 91 92 Argument offset is a byte count. Optional argument whence defaults to 93 0 (offset from start of file, offset should be >= 0); other values are 1 94 (move relative to current position, positive or negative), and 2 (move 95 relative to end of file, usually negative, although many platforms allow 96 seeking beyond the end of a file). If the file is opened in text mode, 97 only offsets returned by tell() are legal. Use of other offsets causes 98 undefined behavior. 99 Note that not all file objects are seekable. """ 100 101 pass 102 103 104 105 def tell(self): # real signature unknown; restored from __doc__ 106 獲取當前指針位置 107 108 """ tell() -> current file position, an integer (may be a long integer). """ 109 pass 110 111 112 def truncate(self, size=None): # real signature unknown; restored from __doc__ 113 截斷數據,僅保留指定之前數據 114 115 """ truncate([size]) -> None. Truncate the file to at most size bytes. 116 117 Size defaults to the current file position, as returned by tell().“"" 118 119 pass 120 121 122 123 def write(self, p_str): # real signature unknown; restored from __doc__