版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第python:關(guān)于文件加載及處理方式目錄關(guān)于文件加載及處理1、檢查python2、對文件夾下面的文件名稱進行列表排列3、過濾不符合要求的文件4、用于將元組轉(zhuǎn)換為列表5、打開文件codeces,open()6、readlines()7、strip()python文件處理(總結(jié))1、txt文件2、csv文件操作
關(guān)于文件加載及處理
1、檢查python
關(guān)于文件加載及處理方式文件路徑是否存在,如果不存在就創(chuàng)建此路徑。
#如果不存在路徑,就創(chuàng)建一個這樣的路徑
ifnotos.path.exists(exp_path):
os.mkdir(exp_path)
os.path.exists():判斷括號里的文件是否存在的意思,括號內(nèi)的可以是文件路徑.如果存在就返回True,不存在返回Falseos.mkdir():創(chuàng)建路徑
2、對文件夾下面的文件名稱進行列表排列
file_list=os.listdir(dir_path)
3、過濾不符合要求的文件
filter()函數(shù)用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表
filter(function,iterable)
function--判斷函數(shù)。iterable--可迭代對象
defis_odd(n):
returnn%2==1
newlist=filter(is_odd,[1,2,3,4,5,6,7,8,9,10])
print(newlist)
[1,3,5,7,9]
4、用于將元組轉(zhuǎn)換為列表
list()
^(* ̄(oo) ̄)^
元組與列表是非常類似的,區(qū)別在于元組的元素值不能修改。
元組是放在括號中,列表是放于方括號中
5、打開文件codeces,open()
查閱資料后和實驗后,發(fā)現(xiàn)和open()的功能差不多,但在進行爬蟲或者其他方式得到數(shù)據(jù)寫入文件時會有編碼不統(tǒng)一的問題,所以就一般都統(tǒng)一轉(zhuǎn)換為Unicode編碼。
總之,用codeces,open()更便捷點。
6、readlines()
每次按行讀取整個文件內(nèi)容,將讀取到的內(nèi)容放到一個列表中,返回list類型
7、strip()
每次按行讀取整個文件內(nèi)容,將讀取到的內(nèi)容放到一個列表中,返回list類型
python文件處理(總結(jié))
1、txt文件
1.1txt文件讀取
withopen("11.txt",'r')asfile:
forlinfile:
idnos.append(l.replace('\n',''))
f.close()
#關(guān)閉文件,這個可以是個好習(xí)慣哦
1.2txt寫入不覆蓋寫入
withopen("d.txt",'a',encoding='utf-8')asfile:
file.write('\n'+'摘要:'+gaiyao)
file.write('\n')
file.close()
1.3各個文件標(biāo)簽的含義
訪問模式說明r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。w打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。a打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進行寫入。rb以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。wb以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。ab以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進行寫入。r+打開一個文件用于讀寫。文件指針將會放在文件的開頭。w+打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。a+打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結(jié)尾。文件打開時會是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。rb+以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。wb+以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。ab+以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。
1.4逐行讀取txt中所有內(nèi)容
#coding=utf-8
f=open('11.txt','r')
content=f.readlines()
print(type(content))
fortempincontent:
print("%d:%s"%(i,temp))
i+=1
f.close()
1.5讀取txt中前兩行的內(nèi)容
#coding=utf-8
f=open('11.txt','r')
content=f.readline()
print("1:%s"%content)
content=f.readline()
print("2:%s"%content)
f.close()
1.6文件拷貝
#提示輸入文件
oldFileName=input("請輸入要拷貝的文件名字:")
#以讀的方式打開文件
oldFile=open(oldFileName,'rb')
#提取文件的后綴
fileFlagNum=oldFileName.rfind('.')
iffileFlagNum0:
fileFlag=oldFileName[fileFlagNum:]
#組織新的文件名字
newFileName=oldFileName[:fileFlagNum]+'[復(fù)件]'+fileFlag
#創(chuàng)建新文件
newFile=open(newFileName,'wb')
#把舊文件中的數(shù)據(jù),一行一行的進行復(fù)制到新文件中
forlineContentinoldFile.readlines():
newFile.write(lineContent)
#關(guān)閉文件
oldFile.close()
newFile.close()
1.7文件的相關(guān)操作
文件重命名
importos
os.rename("畢業(yè)論文.txt","畢業(yè)論文-最終版.txt")
刪除文件
importos
os.remove("畢業(yè)論文.txt")
創(chuàng)建文件夾
importos
os.mkdir("張三")
獲取當(dāng)前目錄
importos
os.getcwd()
改變默認目錄
importos
os.chdir("../")
獲取目錄列表
importos
os.listdir("./")
刪除文件夾
importos
os.rmdir("張三")
1.8文件管理-學(xué)生管理系統(tǒng)
注:先創(chuàng)建一個文件:info_data.data
importtime
importos
#定一個列表,用來存儲所有的學(xué)生信息(每個學(xué)生是一個字典)
info_list=[]
defprint_menu():
print("---------------------------")
print("
學(xué)生管理系統(tǒng)V1.0")
print("1:添加學(xué)生")
print("2:刪除學(xué)生")
print("3:修改學(xué)生")
print("4:查詢學(xué)生")
print("5:顯示所有學(xué)生")
print("6:保存數(shù)據(jù)")
print("7:退出系統(tǒng)")
print("---------------------------")
defadd_new_info():
"""添加學(xué)生信息"""
globalinfo_list
new_name=input("請輸入姓名:")
new_tel=input("請輸入手機號:")
new_qq=input("請輸入QQ:")
fortemp_infoininfo_list:
iftemp_info['name']==new_name:
print("此用戶名已經(jīng)被占用,請重新輸入")
return
#如果一個函數(shù)只有return就相當(dāng)于讓函數(shù)結(jié)束,沒有返回值
#定義一個字典,用來存儲用戶的學(xué)生信息(這是一個字典)
info={}
#向字典中添加數(shù)據(jù)
info["name"]=new_name
info["tel"]=new_tel
info["qq"]=new_qq
#向列表中添加這個字典
info_list.append(info)
defdel_info():
"""刪除學(xué)生信息"""
globalinfo_list
del_num=int(input("請輸入要刪除的序號:"))
if0=del_numlen(info_list):
del_flag=input("你確定要刪除么yesorno")
ifdel_flag=="yes":
delinfo_list[del_num]
else:
print("輸入序號有誤,請重新輸入")
defmodify_info():
"""修改學(xué)生信息"""
globalinfo_list
modify_num=int(input("請輸入要修改的序號:"))
if0=modify_numlen(info_list):
print("你要修改的信息是:")
print("name:%s,tel:%s,QQ:%s"%(info_list[modify_num]['name'],
info_list[modify_num]['tel'],info_list[modify_num]['qq']))
info_list[modify_num]['name']=input("請輸入新的姓名:")
info_list[modify_num]['tel']=input("請輸入新的手機號:")
info_list[modify_num]['qq']=input("請輸入新QQ:")
else:
print("輸入序號有誤,請重新輸入")
defsearch_info():
"""查詢學(xué)生信息"""
search_name=input("請輸入要查詢的學(xué)生姓名:")
fortemp_infoininfo_list:
iftemp_info['name']==search_name:
print("查詢到的信息如下:")
print("name:%s,tel:%s,QQ:%s"%(temp_info['name'],
temp_info['tel'],temp_info['qq']))
break
else:
print("沒有您要找的信息....")
defprint_all_info():
"""遍歷學(xué)生信息"""
print("序號\t姓名\t\t手機號\t\tQQ")
i=0
fortempininfo_list:
#temp是一個字典
print("%d\t%s\t\t%s\t\t%s"%(i,temp['name'],temp['tel'],temp['qq']))
i+=1
defsave_data():
"""加載之前存儲的數(shù)據(jù)"""
f=open("info_data.data","w")
f.write(str(info_list))
f.close()
defload_data():
"""加載之前存儲的數(shù)據(jù)"""
globalinfo_list
f=open("info_data.data")
content=f.read()
info_list=eval(content)
f.close()
defmain():
"""用來控制整個流程"""
#加載數(shù)據(jù)(1次即可)
load_data()
whileTrue:
#1.打印功能
print_menu()
#2.獲取用戶的選擇
num=input("請輸入要進行的操作(數(shù)字):")
#3.根據(jù)用戶選擇,做相應(yīng)的事情
ifnum=="1":
#添加學(xué)生
add_new_info()
elifnum=="2":
#刪除學(xué)生
del_info()
elifnum=="3":
#修改學(xué)生
modify_info()
elifnum=="4":
#查詢學(xué)生
search_info()
elifnum=="5":
#遍歷所有的信息
print_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)生診療過程中儀態(tài)舉止
- 2026年河南工業(yè)貿(mào)易職業(yè)學(xué)院單招綜合素質(zhì)筆試參考題庫帶答案解析
- 醫(yī)療器械使用與維護禮儀
- 2026年呼和浩特職業(yè)學(xué)院單招綜合素質(zhì)筆試備考試題帶答案解析
- 2026年福建師范大學(xué)協(xié)和學(xué)院高職單招職業(yè)適應(yīng)性考試參考題庫帶答案解析
- 個性化藥物治療在罕見病治療中的應(yīng)用
- 醫(yī)院臨床科研能力提升
- 2026年保險職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試備考試題帶答案解析
- 2026年合肥信息技術(shù)職業(yè)學(xué)院單招綜合素質(zhì)筆試備考試題帶答案解析
- 護理健康教育方法創(chuàng)新
- 2026年中國數(shù)聯(lián)物流備考題庫有限公司招聘備考題庫及參考答案詳解一套
- 四川省樂山市2026屆高一上數(shù)學(xué)期末質(zhì)量檢測試題含解析
- 2025年天津中德應(yīng)用技術(shù)大學(xué)馬克思主義基本原理概論期末考試真題匯編
- 2025青海省交通控股集團有限公司面向社會公開招聘70人筆試歷年參考題庫附帶答案詳解
- 韓語興趣愛好課件
- 青霉素過敏性休克處理
- 70周歲換證三力測試題,老人駕考模擬測試題
- 工地清場協(xié)議書
- 2026年包頭輕工職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案詳解
- 2026年及未來5年市場數(shù)據(jù)中國內(nèi)貿(mào)集裝箱行業(yè)全景評估及投資規(guī)劃建議報告
- 2025貴州鹽業(yè)(集團)有限責(zé)任公司貴陽分公司招聘筆試考試備考題庫及答案解析
評論
0/150
提交評論