新聞中心
Python中的csv模塊用于處理CSV文件,支持讀取、寫入和修改操作。
Python中CSV的用法
CSV簡(jiǎn)介
CSV(Comma-Separated Values,逗號(hào)分隔值)是一種用于存儲(chǔ)表格數(shù)據(jù)的純文本文件格式,它使用逗號(hào)作為字段分隔符,換行符作為記錄分隔符,CSV文件可以由任意數(shù)量的記錄組成,每個(gè)記錄可以包含相同的字段,CSV文件通常用于在不同程序之間導(dǎo)入和導(dǎo)出數(shù)據(jù)。
Python中CSV模塊
Python中提供了一個(gè)名為csv的內(nèi)置模塊,用于處理CSV文件,這個(gè)模塊提供了一些函數(shù)和類,使得讀取和寫入CSV文件變得更加簡(jiǎn)單。
1、讀取CSV文件
要讀取CSV文件,可以使用csv模塊中的reader函數(shù),這個(gè)函數(shù)接受一個(gè)文件對(duì)象作為參數(shù),并返回一個(gè)可迭代的對(duì)象,可以逐行讀取CSV文件中的數(shù)據(jù)。
示例代碼:
import csv
with open('example.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
2、寫入CSV文件
要寫入CSV文件,可以使用csv模塊中的writer函數(shù),這個(gè)函數(shù)接受一個(gè)文件對(duì)象作為參數(shù),并返回一個(gè)可調(diào)用的對(duì)象,可以逐行寫入CSV文件。
示例代碼:
import csv
data = [['Name', 'Age', 'City'],
['Alice', 30, 'New York'],
['Bob', 28, 'San Francisco']]
with open('output.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
for row in data:
writer.writerow(row)
3、處理帶引號(hào)的字段
CSV文件中的字段可能包含逗號(hào)或者換行符,這時(shí)候需要用引號(hào)將字段括起來(lái),csv模塊提供了QUOTE_ALL常量,可以用來(lái)處理這種情況。
示例代碼:
import csv
with open('example_with_quotes.csv', 'r') as csvfile:
reader = csv.reader(csvfile, quoting=csv.QUOTE_ALL)
for row in reader:
print(row)
相關(guān)問(wèn)題與解答
1、如何在Python中讀取一個(gè)非標(biāo)準(zhǔn)的CSV文件(使用制表符作為分隔符)?
答:可以使用csv.Sniffer類來(lái)自動(dòng)檢測(cè)分隔符,然后使用csv.reader或csv.DictReader來(lái)讀取文件。
示例代碼:
import csv
with open('example.tsv', 'r') as csvfile:
dialect = csv.Sniffer().sniff(csvfile.read())
reader = csv.reader(csvfile, dialect)
for row in reader:
print(row)
2、如何在Python中將字典寫入CSV文件?
答:可以使用csv.DictWriter類來(lái)實(shí)現(xiàn)這個(gè)功能。
示例代碼:
import csv
data = [{'Name': 'Alice', 'Age': 30, 'City': 'New York'},
{'Name': 'Bob', 'Age': 28, 'City': 'San Francisco'}]
with open('output.csv', 'w') as csvfile:
fieldnames = ['Name', 'Age', 'City']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for row in data:
writer.writerow(row)
3、如何讀取一個(gè)CSV文件的部分行?
答:可以使用Python的切片操作來(lái)實(shí)現(xiàn)這個(gè)功能。
示例代碼:
import csv
with open('example.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
for i, row in enumerate(reader):
if i < 5: 只讀取前5行
print(row)
else:
break
4、如何處理帶有非法字符的CSV文件?
答:可以使用error_bad_lines參數(shù)來(lái)跳過(guò)包含非法字符的行。
示例代碼:
import csv
with open('example_with_illegal_chars.csv', 'r') as csvfile:
reader = csv.reader(csvfile, error_bad_lines=False)
for row in reader:
print(row)
名稱欄目:python中csv的用法
文章來(lái)源:http://www.5511xx.com/article/djcphcg.html


咨詢
建站咨詢

