python文件處理詳解
文件操作
此為本人學(xué)習(xí)python過程中的筆記,將持續(xù)更新,歡迎提問指正。
1.txt文件
1.文本文件 txt
2.二進制文件 圖片視頻
操作流程打開——操作——關(guān)閉
打開文件
變量名 = open(文件路徑及文件名,模式)
操作文件
變量名.close
路徑使用 \\ 或 /
| 模式 | 描述 |
|---|---|
| r | 只讀 |
| w | 覆蓋寫, |
| x | 創(chuàng)建寫,創(chuàng)建文件 |
| a | 追加寫 |
| b | 二進制文件模式 |
| t | 文本文件模式 |
| + | 與r/w/x/a一同使用 |
測試使用中寫入位置存在問題,只出現(xiàn)過一次,不知道是不是我操作的問題,希望了解的大佬可以指點一下
f=open("G:\\Python\\txt.txt","a")
f=open("G:\\Python\\txt.txt","r+")
print(f.read())
f.write("99999999")
f.close()
#文件讀取只有第一次會調(diào)用,后面不在生效
#實測a+無法讀取文件,r+模式下光標出現(xiàn)在開頭一次
read(10) 讀取10個字符
readline() 讀取第一行,有參數(shù)讀取該行前n個字符
readlines() 讀取所有行,如有參數(shù)則讀取第n行
seek(0) 改變指針位置,0為開頭,1為結(jié)尾
write()向文件寫入內(nèi)容
writelines()將列表類型全部元素連接起來寫入文檔中
2.數(shù)據(jù)維度
1.一維數(shù)據(jù)
由對等關(guān)系的有序無序數(shù)據(jù)構(gòu)成
2.二維數(shù)據(jù)
也稱表格數(shù)據(jù),采用二維表格方式組織,對應(yīng)數(shù)學(xué)中的矩陣
3.高維數(shù)據(jù)
由鍵值對類型數(shù)據(jù)構(gòu)成,采用對象方式組織,可以多層嵌套
高維數(shù)據(jù)在web中常見,是internet組織內(nèi)容的主要方式,常見有HTML、XML、JSON等具體組織語法結(jié)構(gòu)
HTML:可在網(wǎng)頁中F12查看
XML : Android Studio里
JSON :https://daily.zhihu.com/
一位數(shù)據(jù)
python 中主要以列表的形式存儲
總體思路是采用特殊字符分隔元素,比如空格,逗號,換行符,以及其他特殊分隔符
ls=['一','二','三']
f.write(",".jion(ls))
join() 將序列中元素以指定字符連接生成新字符串
print(",".jion(ls))
csv文件 逗號分隔值
通用的、相對簡單的文件格式,后綴名一般為 .csv
一位數(shù)據(jù)保存后,各元素間采用逗號分隔(英文逗號),在商業(yè)和科學(xué)上應(yīng)用廣泛
f=open("12.csv","r")
ls=f.read()
ls_new=ls.split(',')
#通過指定分隔符對字符串進行切片,返回列表
f.close
二維數(shù)據(jù)
csv文件也可存儲二維數(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庫的xlrd 1.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('成績')
# 獲取并打印該 sheet 行數(shù)和列數(shù)
print( u"sheet %s 共 %d 行 %d 列" % (sh1.name, sh1.nrows, sh1.ncols))
# 獲取并打印某個單元格的值
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)容!
相關(guān)文章
詳談Python高階函數(shù)與函數(shù)裝飾器(推薦)
下面小編就為大家?guī)硪黄斦凱ython高階函數(shù)與函數(shù)裝飾器(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
Python中asyncore異步模塊的用法及實現(xiàn)httpclient的實例
asyncore即是一個異步的socket封裝,特別是dispatcher類中包含了很多異步調(diào)用的socket操作方法,非常犀利,下面我們就來講解Python中asyncore異步模塊的用法及實現(xiàn)httpclient的實例2016-06-06
Django關(guān)于事務(wù)transaction.atomic()的使用方式
這篇文章主要介紹了Django關(guān)于事務(wù)transaction.atomic()的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
python中redis查看剩余過期時間及用正則通配符批量刪除key的方法
這篇文章主要介紹了python中redis查看剩余過期時間及用正則通配符批量刪除key的方法,需要的朋友可以參考下2018-07-07

