python文件處理詳解
文件操作
此為本人學(xué)習(xí)python過程中的筆記,將持續(xù)更新,歡迎提問指正。
1.txt文件
1.文本文件 txt
2.二進(jìn)制文件 圖片視頻
操作流程打開——操作——關(guān)閉
打開文件
變量名 = open(文件路徑及文件名,模式)
操作文件
變量名.close
路徑使用 \\ 或 /
模式 | 描述 |
---|---|
r | 只讀 |
w | 覆蓋寫, |
x | 創(chuàng)建寫,創(chuàng)建文件 |
a | 追加寫 |
b | 二進(jìn)制文件模式 |
t | 文本文件模式 |
+ | 與r/w/x/a一同使用 |
測(cè)試使用中寫入位置存在問題,只出現(xiàn)過一次,不知道是不是我操作的問題,希望了解的大佬可以指點(diǎn)一下
f=open("G:\\Python\\txt.txt","a") f=open("G:\\Python\\txt.txt","r+") print(f.read()) f.write("99999999") f.close() #文件讀取只有第一次會(huì)調(diào)用,后面不在生效 #實(shí)測(cè)a+無法讀取文件,r+模式下光標(biāo)出現(xiàn)在開頭一次 read(10) 讀取10個(gè)字符 readline() 讀取第一行,有參數(shù)讀取該行前n個(gè)字符 readlines() 讀取所有行,如有參數(shù)則讀取第n行 seek(0) 改變指針位置,0為開頭,1為結(jié)尾 write()向文件寫入內(nèi)容 writelines()將列表類型全部元素連接起來寫入文檔中
2.數(shù)據(jù)維度
1.一維數(shù)據(jù)
由對(duì)等關(guān)系的有序無序數(shù)據(jù)構(gòu)成
2.二維數(shù)據(jù)
也稱表格數(shù)據(jù),采用二維表格方式組織,對(duì)應(yīng)數(shù)學(xué)中的矩陣
3.高維數(shù)據(jù)
由鍵值對(duì)類型數(shù)據(jù)構(gòu)成,采用對(duì)象方式組織,可以多層嵌套
高維數(shù)據(jù)在web中常見,是internet組織內(nèi)容的主要方式,常見有HTML、XML、JSON等具體組織語法結(jié)構(gòu)
HTML:可在網(wǎng)頁中F12查看
XML : Android Studio里
JSON :https://daily.zhihu.com/
https://news-at.zhihu.com/api/3/stories/latest
一位數(shù)據(jù)
python 中主要以列表的形式存儲(chǔ)
總體思路是采用特殊字符分隔元素,比如空格,逗號(hào),換行符,以及其他特殊分隔符
ls=['一','二','三'] f.write(",".jion(ls)) join() 將序列中元素以指定字符連接生成新字符串 print(",".jion(ls))
csv文件逗號(hào)分隔值
通用的、相對(duì)簡(jiǎn)單的文件格式,后綴名一般為 .csv
一位數(shù)據(jù)保存后,各元素間采用逗號(hào)分隔(英文逗號(hào)),在商業(yè)和科學(xué)上應(yīng)用廣泛
f=open("12.csv","r") ls=f.read() ls_new=ls.split(',') #通過指定分隔符對(duì)字符串進(jìn)行切片,返回列表 f.close
二維數(shù)據(jù)
csv文件也可存儲(chǔ)二維數(shù)據(jù)
ls=[["1","2"], ["3",["4"]]] f=open("12.csv","w") for row in ls: f.write(",".join(row)+"\n") f.close f = open("12.csv", "r") ls = [] for line in f: ls.append(line.strip('\n').split(",")) # a=line.strip('\n') # b=a.split(',') # ls.append(b) f.close
3.Excel文件
#引入Excel庫的xlrd1.20版本 import xlrd # 打開剛才我們寫入的 test_w.xls 文件 wb = xlrd.open_workbook(r'E:\MATLAB\project\shiyan\12.xlsx') # 獲取并打印 sheet 數(shù)量 print( "sheet 數(shù)量:", wb.nsheets) # 獲取并打印 sheet 名稱 print( "sheet 名稱:", wb.sheet_names()) # 根據(jù) sheet 索引獲取內(nèi)容 sh1 = wb.sheet_by_index(0) # 也可根據(jù) sheet 名稱獲取內(nèi)容 sh = wb.sheet_by_name('成績(jī)') # 獲取并打印該 sheet 行數(shù)和列數(shù) print( u"sheet %s 共 %d 行 %d 列" % (sh1.name, sh1.nrows, sh1.ncols)) # 獲取并打印某個(gè)單元格的值 print( "第一行第二列的值為:", sh1.cell_value(0, 1)) # 獲取整行或整列的值 rows = sh1.row_values(0) # 獲取第一行內(nèi)容 cols = sh1.col_values(1) # 獲取第二列內(nèi)容 # 打印獲取的行列值 print( "第一行的值為:", rows) print( "第二列的值為:", cols) # 獲取單元格內(nèi)容的數(shù)據(jù)類型 print( "第二行第一列的值類型為:", sh1.cell(1, 0).ctype)ets()[0]
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。