python-關(guān)于文件加載及處理方式_第1頁
python-關(guān)于文件加載及處理方式_第2頁
python-關(guān)于文件加載及處理方式_第3頁
python-關(guān)于文件加載及處理方式_第4頁
python-關(guān)于文件加載及處理方式_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論