Python語言因其簡潔、易讀易寫而備受青睞。對於數據科學家及工程師而言,Python在數據存儲及處理方面擁有著強大的能力。因此,Python的文件讀寫操作也是數據科學家必須掌握的技能之一。在本文中,我們將從以下幾個方面介紹Python文件讀寫操作及代表性數據存儲方式:
一、文件讀寫概述
文件讀寫是日常開發工作中的一個重要部分。Python內置的open()函數可以打開一個文件,而利用Python的write()方法和read()方法則可以對該文件進行寫入和讀取操作。
下面的示例演示了如何打開一個文件:
file = open("test.txt", "r")
我們可以使用不同的參數實現不同的方式來打開文件:
- “r”:以只讀方式打開文件。
- “w”:以寫入方式打開文件,如果文件存在,則會清空該文件原有內容。
- “a”:以追加模式打開文件,不存在則會創建一個新文件。
- “b”:以二進位模式打開文件,文件類型通常用於非文本文件,如圖像、音頻等。
下面的示例演示了如何以寫入模式打開文件並向其中寫入數據:
file = open("test.txt", "w") file.write("Hello World!")
執行完畢後,我們可以打開該文件並查看其中的內容。
二、CSV文件讀寫操作
CSV(Comma-Separated Value)文件是一種常見的電子表格數據格式,它以逗號分隔行中的數據。Python自帶的csv包可用於讀寫CSV文件。
下面的示例演示了如何利用csv包讀取CSV文件並輸出其中的內容:
import csv with open('test.csv') as csvfile: readCSV = csv.reader(csvfile, delimiter=',') for row in readCSV: print(row)
上述代碼使用了Python的with語句,這個語句會自動調用文件的close()方法來關閉文件。在這個示例中,代碼會以以逗號為強制分隔符將文件內容讀取為一組列表。然後通過迭代這些列表將文件的內容輸出到控制台。
另外,如果我們需要將數據寫入CSV文件,我們需要使用csv.writer()方法。下面的示例演示了如何利用csv.writer()方法將數據寫入CSV文件:
import csv with open('test.csv', mode='w', newline='') as csvfile: writeCSV = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writeCSV.writerow(["John Smith", "Accounting", "November"]) writeCSV.writerow(["Erica Meyers", "IT", "March"])
在這個示例中,我們在逗號分隔值文件中寫入了兩行數據,並且設置了Python的quotechar參數以在數據中包含引號。
三、JSON文件讀寫操作
JSON(JavaScript Object Notation)是一種常見的數據交換格式,其出於具有輕量級、易讀性以及易於編寫的特點。Python的json包可用於讀寫JSON文件。
下面的示例演示了如何利用json包讀取JSON文件並輸出其中的內容:
import json with open('test.json') as jsonFile: jsonData = json.load(jsonFile) for item in jsonData: print(item)
在這個示例中,我們使用json.load()函數將JSON文件轉換為Python對象。由於JSON文件可能包含嵌套結構,因此可以通過迭代對象的方式來輸出JSON文件中的內容。
如果需要將數據寫入JSON文件,我們可以使用json.dump()方法。下面的示例演示了如何利用json.dump()方法將Python對象寫入到JSON文件中:
import json data = { "name" : "John", "age" : 30, "city" : "New York" } with open('test.json', 'w') as jsonFile: json.dump(data, jsonFile)
在這個示例中,我們定義了一個Python對象並將其保存到JSON文件中。注意,在使用json.dump()方法時,我們必須指定文件的編碼方式,以確保寫入正確的編碼。
四、SQLite資料庫讀寫操作
SQLite是一種輕量級的關係型資料庫管理系統。Python的sqlite3包可用於在Python中操作SQLite資料庫。
下面的示例演示了如何連接到SQLite資料庫及創建表:
import sqlite3 connection = sqlite3.connect('test.db') cursor = connection.cursor() cursor.execute('CREATE TABLE employees (id integer, name text, salary real, department text, position text)')
在這個示例中,我們使用sqlite3.connect()函數連接到指定的SQLite資料庫。然後,我們使用cursor對象執行SQL語句以創建一個新表。
如果需要在資料庫中插入數據,我們可以使用cursor.execute()方法或cursor.executemany()方法。下面的示例演示了如何使用cursor.execute()方法將數據插入到表中:
cursor.execute("INSERT INTO employees VALUES (1, 'John', 10000, 'IT', 'Manager')") cursor.execute("INSERT INTO employees VALUES (2, 'Jane', 20000, 'HR', 'Manager')")
在這個示例中,我們將兩條數據分別插入到employees表中。由於SQLite是支持事務的,因此插入大量數據時應使用這個特性來增加處理速度。
如果需要從資料庫中讀取數據,我們可以使用游標(cursor)對象。下面的示例演示了如何使用游標(cursor)對象讀取表中的數據:
cursor.execute("SELECT * FROM employees") rows = cursor.fetchall() for row in rows: print(row)
在這個示例中,我們通過SQL語句將表中的數據讀取到SQLite的數據類型中,並通過Python迭代這些數據以輸出到控制台。
五、總結
在Python中,文件讀寫及常見的數據存儲方式是任何Python開發人員必須掌握的技能之一。利用Python自帶的函數和包,文件及數據讀寫變得更加便捷、高效。掌握這些技能可以讓工程師更快地處理大量數據、更加高效地完成相關任務。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308996.html