python讀取多個csv檔案中某一列,並生成新csv檔案

2021-03-28 19:31:29 字數 5864 閱讀 4702

1樓:匿名使用者

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')

之後你可以將所有的輸入檔案放到乙個列表裡面,進行迭代呼叫這個函式就可以了。

2樓:匿名使用者

參考方法如下:

逐行處理:

for line in open("samples/sample.csv"):

title, year, director = line.split(",") //以「,」號為分割,按逗號將資料分成三部分;

print year, title

使用csv模組處理:

import csv

reader = csv.reader(open("samples\sample.csv"))

for title, year, director in reader:

print year, title

改變分隔符;

python對多個csv檔案裡提取指定列彙總到乙個新生成的csv檔案

3樓:大漠鳳蕭蕭

csv 是可以直接當文字直接讀的,他的格式是一行由若干列逗號隔開的

和文字檔案一樣的讀到csv後,用逗號分隔列,然後將您需要的那一列寫到新的檔案裡就可以了

只提供思路,我就不寫**了,可能會用有 open split readline

4樓:

#!/usr/bin/env python

# coding: utf-8

import os

import re

def parserln(ln, patt):

"""用

給定的正規表示式解析行"""

matched = patt.match(ln)

if matched:

return matched.groupdict()

def getdata(filename, parser, callback=none):

"""用指定的解析方法parser解析指定檔案,

用callback進行資料加工過的資料列表

"""with open(filename, 'rt') as handle:

return map(

callback,

filter(none, map(parser, handle))

)def storage(filename, dataserial, spliter=','):

"""將資料序列按行儲存到指定檔案,

每一串行元素間用指定的字元分割"""

with open(filename, 'wt') as handle:

handle.writelines([

"%s\n" % (spliter.join(map(str, item)))

for item in dataserial

])if __name__ == "__main__":

patt = re.***pile(

r"""^

(?p\d+),

(?p\d+),

(?p\d+)

\s*$""",

re.i | re.u | re.x)

datapath = 'datasource'

# datasource下所有存在"usage.csv"檔案的子目錄

subpaths = [

os.path.join(datapath, path)

for path in os.listdir(datapath)

if (os.path.isdir(os.path.join(datapath, path))

and os.path.exists(

os.path.join(datapath, path, "usage.txt")))]

storage(

'store.csv',

zip(*map(

lambda path: getdata(

os.path.join(path, "usage.csv"),

# 解析方法為用patt解析行

parser=lambda ln: parserln(ln, patt),

# 資料加工方法是取出"amount"轉成整數

求python大神指導,乙個csv檔案,把其中每一列的資料提取出來單獨儲存為乙個csv檔案

5樓:天天不看

csv是***ma-separated values的縮寫,是用文字檔案形式儲存的**資料,比如如下的**:

就可以儲存為csv檔案,檔案內容是:

no.,name,age,score

1,mayi,18,99

2,jack,21,89

3,tom,25,95

4,rain,19,80

假設上述csv檔案儲存為"test.csv"

1.讀檔案

如何用python像操作excel一樣提取其中的一列,即乙個字段,利用python自帶的csv模組,有兩種方法可以實現:

第一種方法使用reader函式,接收乙個可迭代的物件(比如csv檔案),能返回乙個生成器,就可以從其中解析出csv的內容:比如下面的**可以讀取csv的全部內容,以行為單位:

#!/usr/bin/python3

# -*- conding:utf-8 -*-

__author__ = 'mayi'

import csv

#讀with open("test.csv", "r", encoding = "utf-8") as f:

reader = csv.reader(f)

rows = [row for row in reader]

print(rows)

得到:[['no.', 'name', 'age', 'score'],

['1', 'mayi', '18', '99'],

['2', 'jack', '21', '89'],

['3', 'tom', '25', '95'],

['4', 'rain', '19', '80']]

要提取其中某一列,可以用下面的**:

#!/usr/bin/python3

# -*- conding:utf-8 -*-

__author__ = 'mayi'

import csv

#讀取第二列的內容

with open("test.csv", "r", encoding = "utf-8") as f:

reader = csv.reader(f)

column = [row[1] for row in reader]

print(column)

得到:['name', 'mayi', 'jack', 'tom', 'rain']

注意從csv讀出的都是str型別。這種方法要事先知道列的序號,比如name在第2列,而不能根據'name'這個標題查詢。這時可以採用第二種方法:

第二種方法是使用dictreader,和reader函式類似,接收乙個可迭代的物件,能返回乙個生成器,但是返回的每乙個單元格都放在乙個字典的值內,而這個字典的鍵則是這個單元格的標題(即列頭)。用下面的**可以看到dictreader的結構:

# -*- conding:utf-8 -*-

__author__ = 'mayi'

import csv

#讀with open("test.csv", "r", encoding = "utf-8") as f:

reader = csv.dictreader(f)

column = [row for row in reader]

print(column)

得到:[,,,

]如果我們想用dictreader讀取csv的某一列,就可以用列的標題查詢:

#!/usr/bin/python3

# -*- conding:utf-8 -*-

__author__ = 'mayi'

import csv

#讀取name列的內容

with open("test.csv", "r", encoding = "utf-8") as f:

reader = csv.dictreader(f)

column = [row['name'] for row in reader]

print(column)

得到:['mayi', 'jack', 'tom', 'rain']

2.寫檔案

讀檔案時,我們把csv檔案讀入列表中,寫檔案時會把列表中的元素寫入到csv檔案中。

#!/usr/bin/python3

# -*- conding:utf-8 -*-

__author__ = 'mayi'

import csv

#寫:追加

row = ['5', 'hanmeimei', '23', '81']

out = open("test.csv", "a", newline = "")

csv_writer = csv.writer(out, dialect = "excel")

csv_writer.writerow(row)得到:

Python如何迴圈讀取csv或者excel中的一列資料

實測是可以從 a.csv複製 到版 b.csv中權 import csv def foo with open a.csv r as f reader csv.dictreader f rows row for row in reader if not rows return with open b....

csv檔案用什麼開啟

csv其實就是comma separated value的縮寫,出現在檔案總管中的檔案型別是 逗號分格 依計算機原來的設定,如果直接點選該檔案,計算機將以excel的模式開啟該檔案。但建議您千萬不要這麼做,因為csv檔如果以excel開啟,由於計算機檔案資料轉換的原因,會將其crc之數值改做科學記號...

如何用python讀取json裡面的值啊

1 首先需要在桌面新建 json.txt 檔案,內容為jsonline格式。2 開啟python開發工具idle,新建 json.py 檔案,並按照如圖回 所示答書寫 3 f5執行程式,shell列印出json文字資訊。4 這是一次性讀取所有內容,如果檔案很大的情況,出於效能考慮要分批讀取內容,這樣...