本專案可以按照比例將乙個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...