日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python为什么找不到csv文件_python读写csv文件的方法(还没试,先记录一下)

發布時間:2025/4/5 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python为什么找不到csv文件_python读写csv文件的方法(还没试,先记录一下) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該csv模塊定義了以下功能:

csv.reader(csvfile,dialect ='excel',** fmtparams)

返回一個reader對象,它將迭代給定csvfile中的行。?csvfile可以是任何支持迭代器協議的對象,并在每次__next__()調用其方法時返回一個字符串-?文件對象和列表對象都是合適的。如果csvfile是一個文件對象,則應該打開它newline=''。[1]可以給出?可選的?方言參數,該參數用于定義特定于CSV方言的一組參數。它可以是類的子類的實例,也可以是函數Dialect返回的字符串之一?list_dialects()。其他可選的fmtparams可以給出關鍵字參數來覆蓋當前方言中的各個格式參數。有關方言和格式參數的完整詳細信息,請參閱“?方言和格式參數”一節。

從csv文件讀取的每一行都作為字符串列表返回。除非QUOTE_NONNUMERIC指定了format選項(在這種情況下,未加引號的字段將轉換為浮點數),否則不會執行自動數據類型轉換。

一個簡短的用法示例:

>>>

>>> import csv

>>> with open('eggs.csv', newline='') as csvfile:

... spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')

... for row in spamreader:

... print(', '.join(row))

Spam, Spam, Spam, Spam, Spam, Baked Beans

Spam, Lovely Spam, Wonderful Spam

csv.writer(csvfile,dialect ='excel',** fmtparams)

返回一個編寫器對象,負責將用戶的數據轉換為給定的類文件對象上的分隔字符串。csvfile可以是帶有write()方法的任何對象?。如果csvfile是文件對象,則應使用newline=''?[1]打開它?。?可以給出可選的方言參數,該參數用于定義特定于CSV方言的一組參數。它可以是類的子類的實例,也可以是?函數Dialect返回的字符串之一list_dialects()??梢越o出其他可選的fmtparams關鍵字參數來覆蓋當前方言中的各個格式參數。有關方言和格式參數的完整詳細信息,請參閱部分方言和格式參數。為了使與實現DB API的模塊接口盡可能簡單,將值None寫為空字符串。雖然這不是可逆轉換,但它可以更容易地將SQL NULL數據值轉儲到CSV文件,而無需預處理從cursor.fetch*調用返回的數據。所有其他非字符串數據str()在寫入之前都會進行字符串化。

一個簡短的用法示例:

import csv

with open('eggs.csv', 'w', newline='') as csvfile:

spamwriter = csv.writer(csvfile, delimiter=' ',

quotechar='|', quoting=csv.QUOTE_MINIMAL)

spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])

spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

csv.register_dialect(name[,dialect[,** fmtparams]?]?)

將方言與名稱聯系起來。?name必須是一個字符串。方言可以通過傳遞子類Dialect,或通過fmtparams關鍵字參數或兩者來指定,并使用關鍵字參數覆蓋方言的參數。有關方言和格式參數的完整詳細信息,請參閱“?方言和格式參數”一節。

csv.unregister_dialect(name)

從方言注冊表中刪除與名稱關聯的方言。Error如果name不是已注冊的方言名稱,則引發An?。

csv.get_dialect(name)

返回與姓名相關的方言。Error如果name不是已注冊的方言名稱,則引發?An?。此函數返回不可變的?Dialect。

csv.list_dialects()

返回所有已注冊方言的名稱。

csv.field_size_limit([?new_limit]?)

返回解析器允許的當前最大字段大小。如果給出new_limit,則這將成為新限制。

該csv模塊定義了以下類:

classcsv.DictReader(f,fieldnames = None,restkey = None,restval = None,dialect ='excel',* args,** kwds)

創建一個像常規閱讀器一樣操作的對象,但將每行中的信息映射到OrderedDict?其鍵由可選的fieldnames參數給出。

的字段名的參數是一個序列。如果省略fieldnames,則文件f的第一行中的值將用作字段名。無論字段名如何確定,有序字典都保留其原始順序。

如果一行包含的字段多于字段名,則將剩余數據放入一個列表中,并使用restkey指定的字段名(默認為None)進行存儲。如果非空行的字段數少于字段名,則缺少的值將填入None。

所有其他可選或關鍵字參數都傳遞給基礎?reader實例。

在版本3.6中更改:返回的行現在是類型OrderedDict。

一個簡短的用法示例:

>>>

>>> import csv

>>> with open('names.csv', newline='') as csvfile:

... reader = csv.DictReader(csvfile)

... for row in reader:

... print(row['first_name'], row['last_name'])

...

Eric Idle

John Cleese

>>> print(row)

OrderedDict([('first_name', 'John'), ('last_name', 'Cleese')])

classcsv.DictWriter(f,fieldnames,restval ='',extrasaction ='raise',dialect ='excel',* args,** kwds)

創建一個像常規編寫器一樣操作的對象,但將字典映射到輸出行。的字段名的參數是一個sequence標識,其中在傳遞給字典值的順序按鍵的writerow()方法被寫入到文件??F。如果字典缺少字段名中的鍵,則可選的restval參數指定要寫入的值。如果傳遞給方法的字典包含在字段名中找不到的鍵?,則可選的extrasaction參數指示要采取的操作。如果設置為,?則引發默認值a?。如果設置為writerow()'raise'ValueError'ignore',字典中的額外值將被忽略。任何其他可選或關鍵字參數都將傳遞給基礎?writer實例。

請注意,與DictReader類不同,類的fieldnames參數DictWriter不是可選的。

一個簡短的用法示例:

import csv

with open('names.csv', 'w', newline='') as csvfile:

fieldnames = ['first_name', 'last_name']

writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

writer.writeheader()

writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})

writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})

writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

類csv.Dialect

的Dialect類是依賴于主要用于它的屬性,這是用來定義一個特定的參數的容器類reader或writer實例。

類csv.excel

在excel類定義的Excel生成CSV文件的通常的性質。它以方言名稱注冊'excel'。

類csv.excel_tab

所述excel_tab類定義Excel生成的制表符分隔的文件的通常的性質。它以方言名稱注冊'excel-tab'。

類csv.unix_dialect

的unix_dialect類定義在UNIX系統上,即,使用生成的CSV文件的通常性質'\n'如線路終端機和引用的所有字段。它以方言名稱注冊'unix'。

版本3.2中的新功能。

類csv.Sniffer

本Sniffer類用來推斷一個CSV文件的格式。

本Sniffer類提供了兩個方法:

sniff(樣本,分隔符=無)

分析給定的樣本并返回Dialect反映找到的參數的子類。如果給出了可選的delimiters參數,則將其解釋為包含可能的有效分隔符的字符串。

has_header(樣本)

分析示例文本(假定為CSV格式),?True如果第一行看起來是一系列列標題,則返回。

with open('example.csv', newline='') as csvfile:

dialect = csv.Sniffer().sniff(csvfile.read(1024))

csvfile.seek(0)

reader = csv.reader(csvfile, dialect)

# ... process CSV file contents here ...

該csv模塊定義以下常量:

csv.QUOTE_ALL

指示writer對象引用所有字段。

csv.QUOTE_MINIMAL

指示writer對象只引用那些包含特殊字符,如字段分隔符,quotechar或任何字符lineterminator。

csv.QUOTE_NONNUMERIC

指示writer對象引用所有非數字字段。

指示讀者將所有非引用字段轉換為float類型。

csv.QUOTE_NONE

指示writer對象永遠不引用字段。當輸出數據中出現當前?分隔符時,它前面是當前的escapechar?字符。如果未設置escapechar,則Error在遇到需要轉義的任何字符時,編寫器將引發。

指示reader不對引號字符執行特殊處理。

該csv模塊定義了以下異常:

異常csv.Error

檢測到錯誤時由任何功能引發。

1.Python處理csv文件之csv.writer()

import csv

def csv_write(path,data):

with open(path,'w',encoding='utf-8',newline='') as f:

writer = csv.writer(f,dialect='excel')

for row in data:

writer.writerow(row)

return True

調用上面的函數

data = [

['Name','Height'],

['Keys','176cm'],

['HongPing','160cm'],

['WenChao','176cm']

]

csv_write('test.csv',data)

運行結果

2.Python處理csv文件之csv.reader()

def csv_read(path):

data = []

with open(path,'r',encoding='utf-8') as f:

reader = csv.reader(f,dialect='excel')

for row in reader:

data.append(row)

return data

調用上面的函數

data = csv_read('test.csv')

print(data)

運行結果

[['Name', 'Height'], ['Keys', '176cm'], ['HongPing', '160cm'], ['WenChao', '176cm']]

3.Python處理csv文件之csv.DictWriter()

def csv_dict_write(path,head,data):

with open(path,'w',encoding='utf-8',newline='') as f:

writer = csv.DictWriter(f,head)

writer.writeheader()

writer.writerows(data)

return True

調用上面的函數

head = ['Name','Age']

data = [

{'Name':'Keys', 'Age':28},

{'Name':'HongPing', 'Age':29},

{'Name':'WenChao', 'Age':15}

]

csv_dict_write('test2.csv',head,data)

運行結果

4.Python處理csv文件之csv.DictReader()

def csv_dict_read(path):

with open(path,'r',encoding='utf-8') as f:

reader = csv.DictReader(f,dialect='excel')

for row in reader:

print(row['Name'])

調用上面的函數

csv_dict_read('test2.csv')

運行結果

Keys

HongPing

WenChao

總結

以上是生活随笔為你收集整理的python为什么找不到csv文件_python读写csv文件的方法(还没试,先记录一下)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。