將乙個CSV格式的檔案分割成兩個CSV檔案

2021-09-24 12:24:34 字數 2700 閱讀 8637

本專案可以按照比例將乙個csv檔案分割成兩個csv檔案,效果是:在c:\algo_file資料夾下,將該資料夾下的data.csv檔案分成train.csv和vali.csv

定義split_csv函式:

import csv

import os

defsplit_csv

(path, total_len, per)

:# 如果train.csv和vali.csv存在就刪除

if os.path.exists(

'c:\\algo_file\\train.csv'):

os.remove(

'c:\\algo_file\\train.csv'

)if os.path.exists(

'c:\\algo_file\\vali.csv'):

os.remove(

'c:\\algo_file\\vali.csv'

)with

open

(path,

'r', newline='')

asfile

: csvreader = csv.reader(

file

) i =

0for row in csvreader:

if i <

round

(total_len * per/

100)

:# train.csv存放路徑

csv_path = os.path.join(

"c:\\algo_file"

,'train.csv'

)print

(csv_path)

# 不存在此檔案的時候,就建立

ifnot os.path.exists(csv_path)

:with

open

(csv_path,

'w', newline='')

asfile

: csvwriter = csv.writer(

file

) csvwriter.writerow(row)

i +=

1# 存在的時候就往裡面新增

else

:with

open

(csv_path,

'a', newline='')

asfile

: csvwriter = csv.writer(

file

) csvwriter.writerow(row)

i +=

1elif

(i >=

round

(total_len * per/

100)

)and

(i < total_len)

:# vali.csv存放路徑

csv_path = os.path.join(

"c:\\algo_file"

,'vali.csv'

)print

(csv_path)

# 不存在此檔案的時候,就建立

ifnot os.path.exists(csv_path)

:with

open

(csv_path,

'w', newline='')

asfile

: csvwriter = csv.writer(

file

) csvwriter.writerow(row)

i +=

1# 存在的時候就往裡面新增

else

:with

open

(csv_path,

'a', newline='')

asfile

: csvwriter = csv.writer(

file

) csvwriter.writerow(row)

i +=

1else

:break

print

("訓練集和驗證集分離成功"

)return

呼叫上述函式:

if __name__ ==

'__main__'

: path =

'c:\\algo_file\\data.csv'

total_len =

len(

open

(path,

'r')

.readlines())

# csv檔案行數

per =

80# 分割比例%

split_csv(path, total_len, per)

按照訓練集佔80%(驗證集20%)比例,對c:\algo_file資料夾下的data.csv進行分割,在該檔案下得到train.csv 和 vali.csv。

本專案只是以c:\algo_file資料夾為例,實際上data.csv所在路徑,train.csv所在路徑,vali.csv所在路徑包括檔名都可以更改。

乙個檔案分割成多個檔案

linux 或 類unix 下乙個檔案分割成多個 split l 20000 filename.txt a 3 d filename ls grep filename xargs n1 i mv txt 選項 options b 選項後跟期望切割後的單個檔案的大小,單位k或者m eg.split b...

如何將乙個檔案分割成多個小檔案

如何將乙個檔案分割成多個小檔案 你也許會遇到到這樣乙個問題?當你有乙個較大的軟體,而無法用一張軟盤將其全部拷下時,你也許會想到該將它分解開,分盤拷回去後,再將它們合併起來。現在的這種分割工具很多,你想自己動手做乙個適合自己的分割工具麼?下面就讓我用以前用vc做的乙個 袖珍檔案分割器 的例程來告訴你吧...

用Python將乙個列表分割成小列表

方法一 def list of groups init list,childern list len init list為初始化的列表,childern list len初始化列表中的幾個資料組成乙個小列表 param init list param childern list len return...