python_文件操作代码实例
生活随笔
收集整理的這篇文章主要介紹了
python_文件操作代码实例
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
"""提示:代碼中的內(nèi)容均被注釋,請(qǐng)參考,切勿照搬"""
1 #文件的打開和關(guān)閉 2 ''' 3 文件對(duì)象 = open('文件名','使用方式') 4 rt:讀取一個(gè)txt文件 5 wt: 只寫打開一個(gè)txt文件,(如果沒有該文件則新建該文件)會(huì)覆蓋原有內(nèi)容 6 at:打開一個(gè)txt文件,并從文件指針位置追加寫內(nèi)容(文件指針默認(rèn)在末尾) 7 文件操作錯(cuò)誤屬于:I/O異常 8 通常的異常: 9 try: 10 f = open('a.txt','wt') 11 except Exception as e: 12 print(e) 13 ''' 14 #文件的寫操作 15 # 函數(shù): 文件對(duì)象.write(s)其中s是待寫入文件的字符串{文件對(duì)象需要時(shí)可寫入的對(duì)象} 16 ''' 17 try: 18 fobj = open('anc.txt','wt') #wt:可寫入操作方式/at為在原有的文件內(nèi)容追加寫入 19 fobj.write('\nmore') #寫函數(shù) 20 fobj.close() 21 22 except Exception as err: 23 print(err) 24 25 結(jié)果:anc文件保存至當(dāng)前目錄下,并寫入“[換行]more” 26 ''' 27 #案例:學(xué)生信息儲(chǔ)存 28 ''' 29 name = 'wanzi' 30 gender = '男' 31 age = 23 32 try: 33 f = open('students.txt','wt') 34 while True: 35 #s = Student(i) 36 #if s: 37 f.write("namegenderge") 38 ans = input("continue(Y/y):") 39 if ans != 'Y' and ans != 'y': 40 break 41 i = i+1 42 f.close() 43 44 except Exception as e: 45 print(e) 46 47 ''' 48 #讀文件操作 文件對(duì)象.read(n) //返回全部字符串或者n字節(jié)字符 49 ''' 50 def writeFile(): #寫文件操作 51 f = open('abc.txt','wt') 52 f.write("Hello world\nI am Code_boy\nMirror_") #三行數(shù)據(jù)(兩個(gè)\n) 53 f.close() 54 55 def readFile(): #讀文件操作 56 f = open('abc.txt','rt') 57 sread = f.read() #文件內(nèi)容讀取 [如果read(n)有值,則讀取n個(gè)字符,為空則讀取全部] 58 print(sread) #將讀取的內(nèi)容打印輸出 59 f.close() 60 61 try: 62 writeFile() #調(diào)用寫文件函數(shù),寫入文件 63 readFile() #調(diào)用讀文件函數(shù),讀出(打印)文件內(nèi)容 64 except Exception as e: 65 print(e) 66 67 '''''' 68 結(jié)果: 69 Hello world 70 I am Code_boy 71 Mirror_ 72 ''' 73 #讀文件操作 文件對(duì)象.readline() //返回一行字符串(讀取連續(xù)的字符串,遇到\n或文件末尾結(jié)束) 74 ''' 75 def writeFile(): 76 f = open('readline.txt','wt') 77 f.write('Hello\nworld') 78 f.close() 79 80 def readlineFile(): 81 f = open('readline.txt','rt') 82 sreadline = f.readline() #讀取readline文件(只讀一行) 83 print(sreadline,'len=',len(sreadline)) 84 sreadline = f.readline() 85 print(sreadline, 'len=', len(sreadline)) 86 sreadline = f.readline() 87 print(sreadline, 'len=', len(sreadline)) 88 89 f.close() 90 try: 91 writeFile() 92 readlineFile() 93 except Exception as e: 94 print(e) 95 96 結(jié)果: 97 Hello #readline中的文件內(nèi)容: Hello\nworld 結(jié)合readline的功能,在讀取一行的數(shù)據(jù) 98 len= 6 # ‘Hello\n’ >>>> 共計(jì)6個(gè)字節(jié)(換行是因?yàn)樽x取了\n) 99 world len= 5 #如上類說明 100 len= 0 #文件指針已到達(dá)末尾,無(wú)法繼續(xù)讀出數(shù)據(jù)故 len = 0 101 102 ''' 103 # .readline()可以使用循環(huán)的方式(判斷是否讀取為空)來(lái)讀取全部,一般都是使用讀單行內(nèi)容 104 #但是! .readlines(){加了一個(gè)‘s'}就可以直接讀取全部數(shù)據(jù): 105 ''' 106 def writeFile(): 107 f = open('readline.txt','wt') 108 f.write('Hello\nworld') 109 f.close() 110 111 def readlinesFile(): 112 f = open('readline.txt','rt') 113 sreadlines = f.readlines() #讀取readlines文件(讀全部行)并以list形式返回 114 #因?yàn)槭且粤斜砀袷椒祷?#xff0c;所以一般情況下會(huì)配合循環(huán)(for)從readlines()提取每一行循環(huán)打印輸出 115 for i in range(len(sreadlines)): #1號(hào):利用for輸出 116 print(sreadlines[i],end='') 117 118 print(sreadlines) #讀全部?jī)?nèi)容,并且每一行用'\n'(顯示)隔開 #2號(hào):直接輸出 119 f.close() 120 121 try: 122 writeFile() 123 readlinesFile() 124 except Exception as error: 125 print(error) 126 127 1號(hào)結(jié)果: 128 Hello 129 world 130 2號(hào)結(jié)果: 131 ['Hello\n', 'world'] #>>>也就是readlinese()讀取數(shù)據(jù)的儲(chǔ)存(list)形式 132 ''' 133 #讀取文件中的學(xué)生信息 134 ''' 135 f = open('student1.txt','rt') 136 while True: 137 138 name = f.readline().strip('\n')# *.strip()>>用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列。 139 if name == '': 140 break 141 gender = f.readline().strip('\n') 142 age = f.readline().strip('\n') 143 f.close() 144 print(name,gender,age) 145 ''' 146 147 #文件編碼 148 ''' 149 #GBK編碼:中文字符包含簡(jiǎn)體和繁體字符,每個(gè)字符僅能存儲(chǔ)簡(jiǎn)體中文字符 漢字占二字節(jié) 150 #*UTF-8編碼:全球通用的編碼(默認(rèn)使用)漢字占三字節(jié) 151 #文件打開時(shí),可以指定用encoding參數(shù)指定編碼例如: 152 # f = open('x.txt','wt',encoding = 'utf-8') 153 # 文件編碼直接決定了文件的空間大小 154 ''' 155 #案例:UTF-8文件編碼 156 ''' 157 def writeFile(): 158 f = open('utf.txt','wt',encoding = 'utf-8') 159 f.write('Hello I am 王宇陽(yáng)') 160 f.close() 161 162 def readFile(): 163 f = open('utf.txt','rt',encoding='utf-8') 164 sreadlines = f.readlines() 165 for i in sreadlines: 166 print(i) 167 f.close() 168 try: 169 writeFile() 170 readFile() 171 except Exception as error: 172 print(error) 173 174 # 結(jié)果: Hello I am 王宇陽(yáng) 175 ''' 176 177 #文件指針(文件結(jié)束標(biāo)志:EOF)...文件對(duì)象.tell()[返回一個(gè)整數(shù),整數(shù)則是指針的位置] 178 ''' 179 f = open('zz.txt','wt',encoding='utf-8') 180 print(f.tell()) #指針位置:0 181 f.write('abcdef 你好') 182 print(f.tell()) #指針位置:13 183 f.close() 184 f = open('zz.txt','rt',encoding='utf-8') 185 f.tell() #文件指針歸零 186 s = f.read(3) 187 print(s,f.tell()) #輸出read讀取內(nèi)容并返回指針位置。讀取大小和指針位置相符 188 f.close() 189 #結(jié)果: 190 0 191 13 192 abc 3 193 ''' 194 #操作指針...文件對(duì)象.seek(offset[,whence]) 195 # offset:開始的偏移量,代表著需要偏移的字節(jié)數(shù) 196 # whence:[可選]默認(rèn)值為‘0’,給offset參數(shù)一個(gè)定義,表示從那個(gè)位置開始偏移,0:文件開頭 1:文件當(dāng)前位置 2:文件末尾 197 #----注意,只有 “rt+ wt+ at+” 的打開方式可以調(diào)整指針,其他的打開方式不支持指針操作 198 ''' 199 def writeFile(): 200 f = open('zz1.txt','wt+',encoding='utf-8') 201 print(f.tell()) #返回初始指針位置 >>> 0 202 f.write('123') #寫入3字節(jié)內(nèi)容 203 print(f.tell()) #返回當(dāng)前(寫入文件后的)指針位置 204 f.seek(2,0) #指針從開頭位置偏移2字節(jié)即:1 2 . 3(點(diǎn)的位置) 205 print(f.tell()) #返回指針位置>>>2 206 f.write('abc') #從當(dāng)前指針位置寫入‘a(chǎn)bc’(覆蓋了‘3’) 207 print(f.tell()) #返回指針位置>>>5 208 f.close() 209 210 def readFlie(): 211 f = open('zz1.txt','rt+',encoding='utf-8') 212 r = f.read() 213 print(r) 214 f.close() 215 216 writeFile() 217 readFlie() 218 #結(jié)果: 219 0 220 3 221 2 222 5 223 12abc 224 ''' 225 #二進(jìn)制文件 226 #打開方式:rb wb ab rb+ wb+ ab+ 227 ''' 228 實(shí)踐中總結(jié): 229 1' list內(nèi)容寫入文件在需要專成str格式,應(yīng)為列表格式文件不接受或者采用 (f.a) 的樣式;(案例綜合:教材管理95-101行) 230 '''
1 #文件的打開和關(guān)閉 2 ''' 3 文件對(duì)象 = open('文件名','使用方式') 4 rt:讀取一個(gè)txt文件 5 wt: 只寫打開一個(gè)txt文件,(如果沒有該文件則新建該文件)會(huì)覆蓋原有內(nèi)容 6 at:打開一個(gè)txt文件,并從文件指針位置追加寫內(nèi)容(文件指針默認(rèn)在末尾) 7 文件操作錯(cuò)誤屬于:I/O異常 8 通常的異常: 9 try: 10 f = open('a.txt','wt') 11 except Exception as e: 12 print(e) 13 ''' 14 #文件的寫操作 15 # 函數(shù): 文件對(duì)象.write(s)其中s是待寫入文件的字符串{文件對(duì)象需要時(shí)可寫入的對(duì)象} 16 ''' 17 try: 18 fobj = open('anc.txt','wt') #wt:可寫入操作方式/at為在原有的文件內(nèi)容追加寫入 19 fobj.write('\nmore') #寫函數(shù) 20 fobj.close() 21 22 except Exception as err: 23 print(err) 24 25 結(jié)果:anc文件保存至當(dāng)前目錄下,并寫入“[換行]more” 26 ''' 27 #案例:學(xué)生信息儲(chǔ)存 28 ''' 29 name = 'wanzi' 30 gender = '男' 31 age = 23 32 try: 33 f = open('students.txt','wt') 34 while True: 35 #s = Student(i) 36 #if s: 37 f.write("namegenderge") 38 ans = input("continue(Y/y):") 39 if ans != 'Y' and ans != 'y': 40 break 41 i = i+1 42 f.close() 43 44 except Exception as e: 45 print(e) 46 47 ''' 48 #讀文件操作 文件對(duì)象.read(n) //返回全部字符串或者n字節(jié)字符 49 ''' 50 def writeFile(): #寫文件操作 51 f = open('abc.txt','wt') 52 f.write("Hello world\nI am Code_boy\nMirror_") #三行數(shù)據(jù)(兩個(gè)\n) 53 f.close() 54 55 def readFile(): #讀文件操作 56 f = open('abc.txt','rt') 57 sread = f.read() #文件內(nèi)容讀取 [如果read(n)有值,則讀取n個(gè)字符,為空則讀取全部] 58 print(sread) #將讀取的內(nèi)容打印輸出 59 f.close() 60 61 try: 62 writeFile() #調(diào)用寫文件函數(shù),寫入文件 63 readFile() #調(diào)用讀文件函數(shù),讀出(打印)文件內(nèi)容 64 except Exception as e: 65 print(e) 66 67 '''''' 68 結(jié)果: 69 Hello world 70 I am Code_boy 71 Mirror_ 72 ''' 73 #讀文件操作 文件對(duì)象.readline() //返回一行字符串(讀取連續(xù)的字符串,遇到\n或文件末尾結(jié)束) 74 ''' 75 def writeFile(): 76 f = open('readline.txt','wt') 77 f.write('Hello\nworld') 78 f.close() 79 80 def readlineFile(): 81 f = open('readline.txt','rt') 82 sreadline = f.readline() #讀取readline文件(只讀一行) 83 print(sreadline,'len=',len(sreadline)) 84 sreadline = f.readline() 85 print(sreadline, 'len=', len(sreadline)) 86 sreadline = f.readline() 87 print(sreadline, 'len=', len(sreadline)) 88 89 f.close() 90 try: 91 writeFile() 92 readlineFile() 93 except Exception as e: 94 print(e) 95 96 結(jié)果: 97 Hello #readline中的文件內(nèi)容: Hello\nworld 結(jié)合readline的功能,在讀取一行的數(shù)據(jù) 98 len= 6 # ‘Hello\n’ >>>> 共計(jì)6個(gè)字節(jié)(換行是因?yàn)樽x取了\n) 99 world len= 5 #如上類說明 100 len= 0 #文件指針已到達(dá)末尾,無(wú)法繼續(xù)讀出數(shù)據(jù)故 len = 0 101 102 ''' 103 # .readline()可以使用循環(huán)的方式(判斷是否讀取為空)來(lái)讀取全部,一般都是使用讀單行內(nèi)容 104 #但是! .readlines(){加了一個(gè)‘s'}就可以直接讀取全部數(shù)據(jù): 105 ''' 106 def writeFile(): 107 f = open('readline.txt','wt') 108 f.write('Hello\nworld') 109 f.close() 110 111 def readlinesFile(): 112 f = open('readline.txt','rt') 113 sreadlines = f.readlines() #讀取readlines文件(讀全部行)并以list形式返回 114 #因?yàn)槭且粤斜砀袷椒祷?#xff0c;所以一般情況下會(huì)配合循環(huán)(for)從readlines()提取每一行循環(huán)打印輸出 115 for i in range(len(sreadlines)): #1號(hào):利用for輸出 116 print(sreadlines[i],end='') 117 118 print(sreadlines) #讀全部?jī)?nèi)容,并且每一行用'\n'(顯示)隔開 #2號(hào):直接輸出 119 f.close() 120 121 try: 122 writeFile() 123 readlinesFile() 124 except Exception as error: 125 print(error) 126 127 1號(hào)結(jié)果: 128 Hello 129 world 130 2號(hào)結(jié)果: 131 ['Hello\n', 'world'] #>>>也就是readlinese()讀取數(shù)據(jù)的儲(chǔ)存(list)形式 132 ''' 133 #讀取文件中的學(xué)生信息 134 ''' 135 f = open('student1.txt','rt') 136 while True: 137 138 name = f.readline().strip('\n')# *.strip()>>用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列。 139 if name == '': 140 break 141 gender = f.readline().strip('\n') 142 age = f.readline().strip('\n') 143 f.close() 144 print(name,gender,age) 145 ''' 146 147 #文件編碼 148 ''' 149 #GBK編碼:中文字符包含簡(jiǎn)體和繁體字符,每個(gè)字符僅能存儲(chǔ)簡(jiǎn)體中文字符 漢字占二字節(jié) 150 #*UTF-8編碼:全球通用的編碼(默認(rèn)使用)漢字占三字節(jié) 151 #文件打開時(shí),可以指定用encoding參數(shù)指定編碼例如: 152 # f = open('x.txt','wt',encoding = 'utf-8') 153 # 文件編碼直接決定了文件的空間大小 154 ''' 155 #案例:UTF-8文件編碼 156 ''' 157 def writeFile(): 158 f = open('utf.txt','wt',encoding = 'utf-8') 159 f.write('Hello I am 王宇陽(yáng)') 160 f.close() 161 162 def readFile(): 163 f = open('utf.txt','rt',encoding='utf-8') 164 sreadlines = f.readlines() 165 for i in sreadlines: 166 print(i) 167 f.close() 168 try: 169 writeFile() 170 readFile() 171 except Exception as error: 172 print(error) 173 174 # 結(jié)果: Hello I am 王宇陽(yáng) 175 ''' 176 177 #文件指針(文件結(jié)束標(biāo)志:EOF)...文件對(duì)象.tell()[返回一個(gè)整數(shù),整數(shù)則是指針的位置] 178 ''' 179 f = open('zz.txt','wt',encoding='utf-8') 180 print(f.tell()) #指針位置:0 181 f.write('abcdef 你好') 182 print(f.tell()) #指針位置:13 183 f.close() 184 f = open('zz.txt','rt',encoding='utf-8') 185 f.tell() #文件指針歸零 186 s = f.read(3) 187 print(s,f.tell()) #輸出read讀取內(nèi)容并返回指針位置。讀取大小和指針位置相符 188 f.close() 189 #結(jié)果: 190 0 191 13 192 abc 3 193 ''' 194 #操作指針...文件對(duì)象.seek(offset[,whence]) 195 # offset:開始的偏移量,代表著需要偏移的字節(jié)數(shù) 196 # whence:[可選]默認(rèn)值為‘0’,給offset參數(shù)一個(gè)定義,表示從那個(gè)位置開始偏移,0:文件開頭 1:文件當(dāng)前位置 2:文件末尾 197 #----注意,只有 “rt+ wt+ at+” 的打開方式可以調(diào)整指針,其他的打開方式不支持指針操作 198 ''' 199 def writeFile(): 200 f = open('zz1.txt','wt+',encoding='utf-8') 201 print(f.tell()) #返回初始指針位置 >>> 0 202 f.write('123') #寫入3字節(jié)內(nèi)容 203 print(f.tell()) #返回當(dāng)前(寫入文件后的)指針位置 204 f.seek(2,0) #指針從開頭位置偏移2字節(jié)即:1 2 . 3(點(diǎn)的位置) 205 print(f.tell()) #返回指針位置>>>2 206 f.write('abc') #從當(dāng)前指針位置寫入‘a(chǎn)bc’(覆蓋了‘3’) 207 print(f.tell()) #返回指針位置>>>5 208 f.close() 209 210 def readFlie(): 211 f = open('zz1.txt','rt+',encoding='utf-8') 212 r = f.read() 213 print(r) 214 f.close() 215 216 writeFile() 217 readFlie() 218 #結(jié)果: 219 0 220 3 221 2 222 5 223 12abc 224 ''' 225 #二進(jìn)制文件 226 #打開方式:rb wb ab rb+ wb+ ab+ 227 ''' 228 實(shí)踐中總結(jié): 229 1' list內(nèi)容寫入文件在需要專成str格式,應(yīng)為列表格式文件不接受或者采用 (f.a) 的樣式;(案例綜合:教材管理95-101行) 230 '''
?
轉(zhuǎn)載于:https://www.cnblogs.com/wangyuyang1016/p/10035324.html
總結(jié)
以上是生活随笔為你收集整理的python_文件操作代码实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 目标检测之YOLO V2 V3
- 下一篇: nginx应用geoip模块,实现不同地