本文目錄一覽:
- 1、python讀取CSV文件如何讀取最後一行的指
- 2、Python csv庫整理(部分)
- 3、Python之csv模塊
- 4、python中怎麼處理csv文件
- 5、python 讀取多個csv文件中某一列,並生成一個新csv文件
- 6、如何把csv的數據分割成多個excel數據?
python讀取CSV文件如何讀取最後一行的指
你這裡有2個問題
1. 用csvfile.readlines()
2.你取的targetLine是一個字符串,需要進行分割
具體代碼如下,測試通過,請採納^_^
# coding=utf8
with open(“C:\\test.csv”) as csvfile:
mLines = csvfile.readlines()
targetLine = mLines[-1]
a=targetLine.split(‘,’)[0]
print(a)
Python csv庫整理(部分)
近期,筆者到一些數據競賽網站進行觀察學習,發現很多數據是以csv文件處理的(廢話).因而,磨刀不誤砍柴工,筆者先對Python的csv庫進行學習.
csv模塊實現了CSV格式表單數據的讀寫.這可以以一個兼容Excel的方式讀寫其數據文件,csv模塊中的reader和writer類被用來讀寫序列化的數據.也可以使用DictReader類和DictWriter類以字典的方式讀取數據.
返回一個reader對象,該對象逐行遍歷csvfile(文件和列表均適用,但是文件的話應該newline=”.
默認每一行讀取一個字符串組成的列表(而非數值,除非修改QUOTE_NONUMERIC).
返回一個writer對象,負責將數據在給定的文件類對象上轉換成帶分隔符的字符串.csvfile(只要該對象有write()方法,文件的話應該newline=”.)
這兩個方法可以把name字符串和dialect關聯/脫鉤.dialect可以是Dialect的子類,或者fmtparams的關鍵字參數.
返回一個Dialect對象為name的變種,若其未註冊,拋出Error.
返回已經註冊的所有變種的 名稱
返回當前解析器允許的最大字段大小,如果制定了參數,參數將成為新的最大字段大小.
該對象操作上類似reader,但是把每行中的信息映射到一個字典,字典的鍵由fieldnames給出
fieldname的參數是一個序列sequence [1] ,如果參數缺省,默認第一行的值作為字段名.
如果某一行中的字段多於字段名(比如說約定有5項屬性,但是這一行卻出現了6個數據),則其餘字段將放入列表中,字段名由 restkey 指定(默認為 None)。如果非空白行的字段少於字段名,則缺少的值將用 None 填充。
#其實這玩意應該就跟各種填表裡面的備註用法差不多.
3.8中返回的行是dict類型.
該對象操作上類似reader,但是把每行中的信息映射到一個字典,字典的鍵由fieldnames給出,fieldname參數是不可缺省的.restval用來指定字典缺少鍵的時候要寫入的值.extrasaction用於指定關鍵鍵在fieldname中找不到的情況的處理機制.’raise’引發ValueError,而’ignore’則會被忽略.
這個類被用來瑞段csv文件的格式
以下諸類均在括號中標註了在其變種註冊表中的名稱
定義了Excel生成的csv文件的常規屬性.(‘excel’)
定義了Excel生成的,tab分割的csv文件的常規屬
性.(‘excel-tab’)
定義了UNIX系統上生成的csv文件的常規屬性(‘unix’):
任意可能發生的csv庫函數錯誤.
參考鏈接
Python3.8.2文檔中關於csv庫的相關文檔
Python之csv模塊
csv文件具有格式簡單,快速存取,兼容性好等特點,工程、金融、商業等很多數據文件都是採用csv文件保存和處理。工作中數據處理也用到了csv,簡要總結下使用經驗,特別是那些由於本地兼容性導致的與官方文檔的差異使用。
csv(comma Seperated Values)文件的格式非常簡單,類似一個文本文檔,每一行保存一條數據,同一行中的各個數據通常採用逗號(或tab)分隔。
python自帶了csv模塊,專門用於處理csv文件的讀取和存檔。
csv模塊中,主要由兩種方式存取csv文件:函數方法;類方法。
csv.reader(csvfile,dialect =’excel’,** fmtparams)
返回一個reader對象,它將迭代給定csvfile中的行。
csvfile可以是任何支持迭代器協議的對象,並在每次next()調用其方法時返回一個字符串- 文件對象和列表對象都是合適的。如果csvfile是一個文件對象,那麼它必須在平台上以“b”標誌打開,這會產生影響。可以給出可選的 dialect 參數,該參數用於定義特定於CSV方言的一組參數。它可以是類的子類的實例,也可以是函數Dialect返回的字符串之一 list_dialects()。其他可選的fmtparams可以給出關鍵字參數來覆蓋當前方言中的各個格式參數。
csv.writer(csvfile,dialect =’excel’,** fmtparams)
返回一個編寫器對象,負責將用戶的數據轉換為給定的類文件對象上的分隔字符串。
csvfile可以是帶有write()方法的任何對象 。如果csvfile是一個文件對象,那麼它必須在平台上以“b”標誌打開,這會產生影響。 可以給出可選的dialect參數,該參數用於定義特定於CSV方言的一組參數。它可以是類的子類的實例,也可以是函數Dialect返回的字符串之一 list_dialects()。可以給出其他可選的fmtparams關鍵字參數來覆蓋當前dialect中的各個格式參數。
class csv.DictReader(f,fieldnames = None,restkey = None,restval = None,dialect =’excel’,* args,** kwds)
創建一個像常規閱讀器一樣操作的對象,但將讀取的信息映射到一個dict,其鍵由可選的 fieldnames 參數給出。 字段名 的參數是一個序列,其元素與輸入數據的順序中的字段相關聯。這些元素成為結果字典的關鍵。如果省略 fieldnames 參數,則文件 f 的第一行中的 值 將用作字段名。如果讀取的行包含的字段多於字段名序列,則將剩餘數據添加 為由restkey 值鍵入的序列。如果讀取的行的字段數少於字段名序列,則其餘的鍵將採用可選的 restval 參數的值。任何其他可選或關鍵字參數都將傳遞給基礎 reader 實例。
class csv.DictWriter(f,fieldnames,restval =”,extrasaction =’raise’,dialect =’excel’,* args,** kwds)
創建一個像常規編寫器一樣操作的對象,但將字典映射到輸出行。的字段名的參數是一個序列識別在哪些值在傳遞給字典中的順序按鍵的writerow()方法被寫入到文件˚F。如果字典缺少字段名中的鍵,則可選的restval參數指定要寫入的值。如果傳遞給方法的字典包含在字段名中找不到的鍵,則可選的extrasaction參數指示要採取的操作。如果設置為a 則被提升。如果設置為writerow()’raise’ValueError’ignore’,字典中的額外值將被忽略。任何其他可選或關鍵字參數都將傳遞給基礎 writer實例。
請注意,與DictReader類不同,它的fieldnames參數DictWriter不是可選的。由於Python的dict 對象沒有排序,因此沒有足夠的信息來推斷應該將行寫入文件f的順序。
python中怎麼處理csv文件
什麼是CSV
就是內容用逗號隔開,後綴是‘.csv’的文件。它可以被任何一個文本編輯器打開。如果用excel打開,它又可以是這樣的:
END
讀CSV
典型的可處理的csv文件,通常含有表頭,也就是每列的列名。這樣一來,每一行的內容就可以被當作是以表頭為key的字典。於是可以使用csv定義的類:
class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect=’excel’, *args, **kwds)
下面是官方的例子(Python 3)。我們看到,對於csv文件的內容,我們可以通過相應的tag,也就是字典的key來讀取。
在實際使用過程中,為了分離代碼和方便閱讀,可以先把讀取的內容轉存到列表,隨後再根據各個key進行分開處理(針對多列的情況)。
END
寫CSV
同樣的,寫入的也是列表。使用的類:
class csv.DictWriter(csvfile, fieldnames, restval=”, extrasaction=’raise’, dialect=’excel’, *args, **kwds)
官方例子:我們看到,有專門的函數來寫入表頭,沒有表頭數據是無法對應的。需要注意的是,對於下列語句,‘w’需要修改為‘wb’,否則每次寫入會有多餘空行
with open(‘names.csv’, ‘wb’) as csvfile
python 讀取多個csv文件中某一列,並生成一個新csv文件
csv文件應該是用逗號分隔得才對,否則怎麼算作是csv文件。樓主你開玩笑吧。否則你這只是一個普通的文本文件。如果是真正的csv文件,我只說一點,python裡面有csv模塊,專門處理csv文件。如果是空格分割應該也可以,建議你,看一下python的csv模塊的API,蠻簡單的代碼,其實如果不用的話自己寫也可以。不是很複雜。代碼片段如下:
def deal_file(file_in, file_out)
with open(file_in, ‘r’) as f_in:
with open(file_out, ‘w’) as f_out:
for line in f_in:
f_out.write(line.split(‘ ‘)[2] + ‘\n’)
之後你可以將所有的輸入文件放到一個列表裡面,進行迭代調用這個函數就可以了。
如何把csv的數據分割成多個excel數據?
1、首先Excel2007版一下最大支持65000多條數據,你必須安裝Office2007版以上。
2、使用Access2007(Office組件之一),新建一個數據庫。
3、使用導入外部數據中的“從文本導入”功能,選擇CSV文件,注意一下導入嚮導中的“數據類型”及選擇第一行做標題,直至完成。
4、導出為Excel文件即可。
目的就是避免幾十萬數據量造成電腦假死機。
當然你的電腦夠BT的話,直接用Excel打開CSV文件,另存為Excel格式即可。
可以用 access,但是沒有必要。CSV 是文本文件,網上找一個支持按行拆分的文件分割的小軟件處理就可以了。
如果你不排斥自己寫個腳本來處理,那麼 bat 、power shell、VBS 都是可選的,會 python、perl 就更好了。比導入 access 之後再自己寫輸出可以省一步功夫。
原創文章,作者:JG2VK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129540.html