Python3文件

open()方法

Python open()方法永于打開一個文件,并返回文件對象,并對文件進行處理過程中都需要用到這個方法,如果該文件無法被打開,則拋出OSError

注意:使用open()方法一定要保證關閉文件對象,即調用close()方法。

open()函數常用形式就是接受兩個參數:文件名和模式。

open(file,mode=’r’)

完整語法格式為:

open(file,mode=’r’,buffering=-1,ecoding=None,errors=None,newline=None,closed=True,opener=None)

參數說明:

file:??????????????? 必需,文件路徑(或者相對路徑)

mode:?????????? 可選,文件打開模式

buffering:????? 設置緩沖

encoding:????? 一般使用utf8

errors:?????????? 報錯級別

newline:??????? 區分換行符

closed:?????????? 傳入file參數類型

opener:

?

mode參數有:

模式

描述

t

文本模式

x

寫模式,新建一個文件,如果該文件已存在則報錯

b

二進制模式

+

打開一個文件進行更新

U

通用換行模式(Python3不支持)

r

以只讀的方法打開文件,文件的指針將會放在文件的開頭,這是默認模式

rb

以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭,這是默認模式,一般用于非文本文件如圖片等

r+

打開一個文件用于讀寫,文件指針將位于 文件的開頭

rb+

以二進制格式打開一個文件用于讀寫。文件指針將放在文件的開頭。一般用于非文本文件如圖片

w

打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有的內容會被刪除,即原有內容會被刪除,如果該文件不存在則創建

wb

以為二進制格式打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有的內容會被刪除,即原有內容會被刪除,如果該文件不存在則創建

w+

打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有的內容會被刪除,即原有內容會被刪除,如果該文件不存在則創建,一般用于非文本文件如圖片。

wb+

以二進制打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有的內容會被刪除,即原有內容會被刪除,如果該文件不存在則創建,一般用于非文本文件如圖片。

a

打開一個文件用于追加,如果該文件已存在,文件指針將放在文件尾部。也就是說新的內容將被寫入到已有內容之后,如果該文件不存在,創建新的文件進行寫入。

ab

以二進制格式打開一個文件用于追加,如果該文件已存在,文件指針將放在文件尾部。也就是說新的內容將被寫入到已有內容之后,如果該文件不存在,創建新的文件進行寫入。

a+

打開一個文件用于讀寫,如果該文件已存在,文件指針將放在文件尾部。也就是說新的內容將被寫入到已有內容之后,如果該文件不存在,創建新的文件進行寫入。

ab+

以二進制格式打開一個文件用于追加,如果該文件已存在,文件指針將放在文件尾部。也就是說新的內容將被寫入到已有內容之后,如果該文件不存在,創建新的文件進行寫入。

默認為文本格式,如果要以二進制模式打開,加上b

?

file對象

file對象使用open函數來創建,下標列出了file對象常用的函數:

方法

描述

file.close()

關閉文件

file.flush()

刷新文件內部緩存,直接把內部緩沖的數據立即寫入到文件中,而不是被動等待輸出緩沖區寫入

file.fileno()

返回一個整型的文件描述符,可以用在如os模塊的read()方法等一些底層操作上

file.isatty()

如果文件連接到一個終端設備返回true,否則返回false

file.next()

返回文件下一行(python3不支持)

file.read()

從文件讀取指定的字節數,如果未給定或為負則讀取所有

file.readline()

讀取整行,包括‘\n’

file.readlines()

讀取所有行并返回列表,若給定sizeint>0,返回總和大約為sizeint字節的行,實際讀取值可能要比sizeint較大,因為需要填充緩沖區

file.seek()

設置文件當前位置

file.tell()

返回文件當前位置

file.truncate()

從文件的首行首字符開始截斷,截斷文件為size個字符,無size表示從當前位置截斷;截斷之后后面的所有字符被刪除,其中windows系統下換行代表兩個字符大小。

file.write()

將字符串寫入到文件,返回的是寫入字符長度

file.writelines()

向文件寫入一個學列字符串列表,如果需要換行則需要自己加入每行的換行符。

?

?

轉載于:https://www.cnblogs.com/wanghao-boke/p/11510384.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/384830.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/384830.shtml
英文地址,請注明出處:http://en.pswp.cn/news/384830.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python3輸入輸出

Python兩種輸出值的方式,表達式語句和print()函數。 第三種方式是使用文件對象的write()方法,標準輸出文件可以用sys.stdout的引用。 如果你希望輸出的形式更加多樣,可以使用str.fomat()函數來格式化輸出值。 如果你希望將輸出的值轉化成字符…

動態庫加載順序

1.編譯目標代碼時指定的動態庫搜索路徑; 2.環境變量LD_LIBRARY_PATH指定的動態庫搜索路徑; 3.配置文件/etc/ld.so.conf中指定的動態庫搜索路徑; 4.默認的動態庫搜索路徑/lib; 5.默認的動態庫搜索路徑/usr/lib。 轉載于:https://ww…

Python3正則表達式

正則表達式是一個特殊的字符序列,他能幫助你方便的檢查一個字符串是否與某種模式匹配。re.match函數 re.match嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回一個none。 函數語法: re.match(pat…

C/C++輸入

fgets(str,n,stdin) 從鍵盤輸入一行,替代gets()。讀取到n-1字節時或換行符時終止,如果是文件的話,讀到文件結尾也會停止 getline(cin,str) str的類型必須是string類,它是C特定的字符串類,區別于C的char *數據類型。 ci…

strlen和sizeof的區別

C語言中沒有字符串,用的是字符數組來模擬字符串。 C風格的字符串時字符數組然后在末尾加0表示結尾。 在C語言中有strlen和sizeof兩個函數求字符數組的長度函數,他們倆的區別就是是否把最后的結束標志也加上去。 strlen是不加的,他表示字符串的…

shell編程練習題

求2個數之和計算1-100的和將一目錄下所有的文件的擴展名改為bak編譯當前目錄下的所有.c文件:打印root可以使用可執行文件數,處理結果: roots bins: 2306打印當前sshd的端口和進程id,處理結果: sshd Port&&pid: 22 5412輸出本機創建20…

shell編程題(一)

求2個數之和 #!/bin/bashfunction add {if(( $# < 2 )); thenecho "The arg int correct"elsesum$(($1$2))echo $sumfi }add 1 add 1 2 運行結果&#xff1a; exbotubuntu:~/shareWin/linux/shell$ ./sum.sh 1 2The arg int correct3 $#&#xff1a;相當于C語言…

vimset

vim ~./vimrc set nocompatible "去掉有關vi一致性模式&#xff0c;避免以前版本的bug和局限 set nu! "顯示行號 set guifontLuxi/ Mono/ 9 " 設置字體&#xff0c;字體名稱和字號 filetype on …

shell編程題(二)

計算1-100之和 #!/bin/bashsum0 for i in seq 1 100;do #符號不是單引號 是 1左邊的符號sum$[$i $sum ] done echo $sum #!/bin/bashi0 n1              #定義循環變量 while [ $n -lt 101 ];do  #循環變量小于101 i$(( $i $n))        #累加 n$(( …

vim命令大全

1. vim模式 正常模式&#xff08;按Esc或Ctrl[進入&#xff09; 左下角顯示文件名或為空 插入模式&#xff08;按i進入&#xff09; 左下角顯示--INSERT-- 可視模式&#xff08;按v進入&#xff09; 左下角顯示--VISUAL-- 替換模式&#xff08;按r或R開始&#xff09; 左下角顯…

signal()函數

函數原型 void (*signal(int sig,void(*func)(int)))(int); 指定使用sig指定的信號編號處理信號的方法。參數func指定程序可以處理信號的三種方式之一&#xff1a; l 默認處理(SIG_DFL)&#xff1a; 信號由該特定信號的默認動作處理l 忽略信號&#xff08;SIG_IGN&a…

setitimer()函數

定時器時間函數 struct itimerval&#xff1a;struct itimerval *new_value&#xff0c;其定義如下&#xff1a;struct itimerval {struct timeval it_interval; /*next value*/struct timeval it_value; /*current value*/};struct timeval {long tv_sec; /*seconds*/lonng t…

shell編程題(三)

將一目錄下所有的文件的擴展名改為bak #! /bin/bashfor i in ls domv $i ${i%%.*}.bak done ${i%%.*} 截掉一個變量字符串第一個"."以及其右側的所有字符&#xff0c;即最短前綴匹配。 #! /bin/bashdir./ #指定文件夾for file in $dir*.txt #指定文件夾下面文件類型…

VMware安裝VMwaretools

默認點擊“安裝VMware Tools&#xff08;T&#xff09;”選項下載好安裝包 下載的安裝包放在計算機的media目錄下 進入/media/ubuntu14-04/VMware Tools目錄&#xff1a; cd /media/ubuntu14-04/VMware Tools 將安裝包復制到tmp文件夾下&#xff1a; cp VMwareTools-10.0.5-322…

shell編程題(四)

編譯當前目錄下的所有.c文件 #!/bin/bashif [ $# -lt 1 ] ;then #如果輸入參數小于1則報錯 $# C語言中的argv[0] 輸入參數個數echo "Please follow up file.c!"echo "eg: ./make.sh xxx.c"exit fiif [[ $2 "debug" ]] ;then #如果第三個參數…

stat函數

int lstat(const char *path,struct stat*buf) 當文件是一個符號鏈接時&#xff0c;lstat返回的是該符號鏈接本身的信息&#xff0c;而stat返回的是該鏈接指向的文件的信息。 struct stat {dev_t st_dev; //設備號碼ino_t st_ino; //inode節點號mo…

字符串函數參數傳入傳出(字符串反轉)

/*** strstr.c ***/ #include<stdio.h> #include<string.h>//求字符串p中abcd出現的次數 //自定義函數接口完成業務函數和main函數分開 int getCount(char *mystr,char *sub,int *ncount) {int ret 0;if(mystr NULL || sub NULL || ncount NULL){ret -1;print…

字符串函數參數傳入傳出(去空格)

字符串作為函數參數傳入傳出 /*** delSpace.c ***/ #include<stdio.h> #include<string.h>int DelSpace(char *str) {int iRet -1;int i ;int j ;int ncount 0;char *out str;if(NULL str ){printf("the point in is NULL\n");return iRet;}i 0;j …

字符串的規范使用

有一個字符串”1a2b3d4z”,&#xff1b; 要求寫一個函數實現如下功能&#xff0c; 功能1&#xff1a;把偶數位字符挑選出來&#xff0c;組成一個字符串1。valude&#xff1b;20分 功能2&#xff1a;把奇數位字符挑選出來&#xff0c;組成一個字符串2&#xff0c;valude 20 功能…

字符串的規范使用(二)

鍵值對&#xff08;”key valude”&#xff09;字符串&#xff0c;在開發中經常使用&#xff1b; 要求1&#xff1a;請自己定義一個接口&#xff0c;實現根據key獲取valude&#xff1b;40分 要求2&#xff1a;編寫測試用例。30分 要求3&#xff1a;鍵值對中間可能有n多空格&am…