1. file=open('xxx.txt', encoding='utf-8'),open()函數是Python內置的用于對文件的讀寫操作,返回的是文件的流對象(而不是文件本身,所以使用的方法都是流對象的方法)。使用這個函數時推薦指定encoding參數(Python2.7.x中好像不支持),因為Python代碼在不同的平臺環境中使用的默認編碼方式不同,有可能會發生編譯出錯的問題。
2. 在open中的第一個文件名的的參數中,包含的路徑表示雖然可以根據不同的環境使用斜杠和反斜杠,但在Python中表路徑時,斜杠都是正確的。
3. file(流對象,open的默認模式下的返回值)的一些方法,使用for循環對file進行迭代時,每次迭代都會自動分離出一行(效果相當于對readlines結果的for循環遍歷):
•file.name:獲取文件的文件名(包含路徑),即傳入open文件名參數;
•file.encoding:獲取文件的編碼方式;
•file.mode:獲取文件的訪問方式,若沒有指定這個參數,open的默認訪問方式為只讀“r”;
•file.closed:返回文件是否關閉的狀態;
•file.close():關閉文件(使用完一定及時使用這個函數關閉文件);
•file.read():從當前定位(一般就是文件開始處)獲取文件內容,返回整個文件內容的字符串(此時定位在文件尾,若再使用read()方法,會返回空字符串,因為已經到文件尾了),若指定了需要獲取的 字符 數(可以給read方法傳入參數,比如:read(3)表示從當前定位往后讀取3個字符),則返回指定字符數的字符串。注意不能從一個字符的中間字節處讀取,因為有的字符(比如中文)的表示不止一個字節,而定位是以字節來計算位置的,read()是以字符來計數的;
•file.seek(n):使定位到特定 字節 處(若使用read()方法讀完文件后還想再讀取一次文件,可以使用seek(0)重新定位到文件開始處再讀取);
•file.tell():返回當前定位的字節位置;
•file.readline():讀取文件中的一行,并定位到下一行的開始處;
•file.readlines():讀取文件中的所有行,返回所有行為元素組成的列表;
4. 使用open進行文件操作使建議使用with創建運行環境,可以不用close()方法關閉文件,無論在文件使用中遇到什么問題都能安全的退出,即使發生錯誤,退出運行時環境時也能安全退出文件并給出報錯信息。
# 使用with創建運行時環境with open('xxx.text', encoding='utf-8') as file: file_content = file.read() file.seek(0) file_ten_characters = file.read(10) print(file_content) print(file_ten_characters) #執行完with中的代碼后自動退出運行時環境新聞熱點
疑難解答
圖片精選