當(dāng)涉及到 Python 文件處理時(shí), 我們通常會(huì)涉及到文件的讀取和寫入, 以及文件的操作和處理。
文件讀取
Python語(yǔ)言內(nèi)置了用于操作文件的標(biāo)準(zhǔn)庫(kù)IO,我們可以通過open()方法讀取一個(gè)文件。其中, open() 方法提供了許多可選參數(shù),例如文件打開模式、文件編碼等信息。這里是一個(gè)典型的例子:
withopen('file.txt','r')asfile: data=file.read() print(data)
在這個(gè)例子中,我們打開了一個(gè) file.txt 文件,用 “r” 模式讀取文件,并將結(jié)果存儲(chǔ)到變量 data 中。 然后我們輸出 data 變量的內(nèi)容。當(dāng)我們?cè)?with 塊中使用 open() 方法時(shí),使用完畢后,open() 方法會(huì)自動(dòng)關(guān)閉文件。
文件寫入
我們也可以使用 Python 內(nèi)置的 open() 方法寫入文件,以類似于這樣的方式存儲(chǔ)數(shù)據(jù):
withopen('file.txt','w')asfile: file.write('Hello,World!')
文件操作
在處理文件時(shí),通常需要對(duì)已打開的文件執(zhí)行一些操作。下面列舉了一些常用的操作:
文件重命名
使用 os 模塊的rename()方法可以重命名文件。
importos os.rename('old_name.txt','new_name.txt')
文件刪除
使用 os 模塊的remove()方法可以刪除文件。
importos os.remove('file.txt')
文件判斷
使用 os 模塊的方法可以判斷文件是否存在、是否為目錄等。
importos ifos.path.exists('file.txt'): print('Fileexists!') ifos.path.isdir('dir'): print('Itisadirectory.')
文件列表
使用 os 模塊的listdir()方法可以獲得文件夾中的所有文件和目錄列表。
importos files=os.listdir('.') forfileinfiles: print(file)
數(shù)據(jù)庫(kù)讀寫
我們還可以將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中作數(shù)據(jù)備份或者實(shí)現(xiàn)數(shù)據(jù)的持久化等, 因?yàn)閿?shù)據(jù)庫(kù)以表格形式儲(chǔ)存數(shù)據(jù), 所以Python程序需使用第三方的Python庫(kù)才能讀寫數(shù)據(jù)庫(kù)。
下面是一個(gè)使用 sqlite3 第三方庫(kù)訪問 SQLite 數(shù)據(jù)庫(kù)的例子:
importsqlite3 defcreate_table(): conn=sqlite3.connect('test.db') c=conn.cursor() c.execute('''CREATETABLECOMPANY (IDINTPRIMARYKEYNOTNULL, NAMETEXTNOTNULL, AGEINTNOTNULL, ADDRESSCHAR(50), SALARYREAL);''') conn.commit() conn.close() definsert_data(): conn=sqlite3.connect('test.db') c=conn.cursor() c.execute("INSERTINTOCOMPANY(ID,NAME,AGE,ADDRESS,SALARY) VALUES(1,'Paul',32,'California',20000.00)") c.execute("INSERTINTOCOMPANY(ID,NAME,AGE,ADDRESS,SALARY) VALUES(2,'Allen',25,'Texas',15000.00)") conn.commit() conn.close() defselect_data(): conn=sqlite3.connect('test.db') c=conn.cursor() cursor=c.execute("SELECTid,name,address,salaryfromCOMPANY") forrowincursor: print"ID=",row[0] print"NAME=",row[1] print"ADDRESS=",row[2] print"SALARY=",row[3]," " conn.close() create_table() insert_data() select_data()
在這個(gè)例子中,我們通過 sqlite3 庫(kù)打開并創(chuàng)建了一個(gè) SQLite 數(shù)據(jù)庫(kù)文件,并利用 SQL 語(yǔ)句創(chuàng)建了一個(gè)名為 “COMPANY” 的table。然后我們向這個(gè) table 中插入了兩條數(shù)據(jù),并從表中查詢出所有記錄并輸出。
這只是 Python 文件處理的一個(gè)簡(jiǎn)單介紹,Python IO 和文件處理操作非常豐富,還有許多其他的操作和方法等待我們探索和使用。建議在實(shí)踐中結(jié)合實(shí)際場(chǎng)景來學(xué)習(xí),以更好地理解和掌握相關(guān)知識(shí)。
審核編輯:劉清
-
SQlite
+關(guān)注
關(guān)注
0文章
81瀏覽量
16315 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86211
原文標(biāo)題:網(wǎng)絡(luò)工程師學(xué)Python-25-文件處理
文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
合格的網(wǎng)絡(luò)工程師必會(huì)實(shí)驗(yàn)大全
2004-2012網(wǎng)絡(luò)工程師試題
什么是網(wǎng)絡(luò)工程師
網(wǎng)絡(luò)工程師的待遇怎么樣
網(wǎng)絡(luò)工程師學(xué)Python-for循環(huán)
網(wǎng)絡(luò)工程師學(xué)Python-函數(shù)定義
網(wǎng)絡(luò)工程師學(xué)Python-繼承概念介紹
網(wǎng)絡(luò)工程師學(xué)Python-迭代器
網(wǎng)絡(luò)工程師學(xué)Python-文件打開
網(wǎng)絡(luò)工程師學(xué)Python-文件刪除
網(wǎng)絡(luò)工程師學(xué)Python-遠(yuǎn)程連接管理Telnet
網(wǎng)絡(luò)工程師學(xué)Python-多線程技術(shù)簡(jiǎn)述

評(píng)論