python生成資料集txt檔案與讀取資料集

2021-09-24 05:37:17 字數 3080 閱讀 6402

目錄

一、根據資料夾自動生成帶label的txt檔案:

二、根據txt檔案自動生生成filename,label列表資料:

這是用於給打標籤並生成txt檔案的程式;

creat_labeled_txt  給**目錄裡的檔案打標籤,並且標籤根據第二級級目錄自動生成,如shan:/right(wrong):/a.jpg

在下面程式裡主要用了這幾個功能:

1、os.listdir('dir'):用於看某一目錄下的檔名,返回list

2、txt檔案寫入:

f = open('dir', mode)

mode = 'w' 時,是檔案覆蓋寫入;

mode = 'a'時,檔案是在最後新增寫入;

f.write(str + '\n')

程式:

import os

#分**目錄,如a/b/a.jpg

#input_path為一級目錄;

#def creat_filelist(input_path, classes):

#建立**目錄

#index 一定是str型別,不可以為int

dir_image1 = #二級目錄

file_list = #**目錄

for index, name in enumerate(classes):

print('index', index)

index_str = str(index)

dir_image1_temp = input_path + '/' + name + '/'

for dir2 in os.listdir(dir_image1_temp):

dir_image2_temp = dir_image1_temp + '/' + dir2 + ' ' + index_str

# dir_image2_temp1 = dir_image2_temp.join(' ')

# dir_image2_temp2 = dir_image2_temp.join(index)

return dir_image1, file_list

def creat_txtfile(output_path, file_list):

with open(output_path, 'w') as f:

for list in file_list:

print(list)

f.write(str(list) + '\n')

def main():

dir_image0 = 'e:/shan'

dir_image1 = os.listdir(dir_image0)

classes = dir_image1

print(classes)

dir_list, file_list = creat_filelist(dir_image0, classes)

#print(file_list[0:3])

output_path = './creat_txt1.txt'

creat_txtfile(output_path, file_list)

if __name__ == '__main__':

main()

最後生成的creat_txt1.txt檔案內容為:

具體**:

知識點:

1、strip函式:

宣告:s為字串,rm為要刪除的字串行

s.strip(rm) 刪除s字串中開頭、結尾處,位於 rm刪除序列的字元

s.lstrip(rm) 刪除s字串中開頭處,位於 rm刪除序列的字元

s.rstrip(rm) 刪除s字串中結尾處,位於 rm刪除序列的字元

當rm為空時,預設刪除空白符(包括'\n', '\r', '\t', ' ')

2、txt檔案讀取:

python的文字檔案的內容讀取中,有三類方法:read()、readline()、readlines(),這三種方法各有利弊。 優點

q缺點f.read()

方便、簡單;

一次性讀取出檔案放在乙個大字串中;

檔案過大的時候,占用記憶體會很大

f.readline()

占用記憶體小;

逐行讀取;

由於是逐行讀取的,速度慢

f.readlines()

一次性讀取文字內容;

速度比較快;

用for 迴圈控制

隨著文字的增大,占用記憶體會越來越多;

也可用tensorflow裡的這句:

files_labels = [l.strip().split(' ') for l in tf.gfile.fastgfile(

list_file, 'r').readlines()]

程式:

import os

def read_label_txt(data_dir):

filenames =

labels =

with open(data_dir) as f:

dir_labels = [line.strip().split(' ') for line in f.readlines()]

#一定要用strip,因為原txt檔案每行後面會帶『\n『字元;

for filename, label in dir_labels:

return filenames, labels

def main():

data_dir = './creat_txt1.txt'

image_dir, labels = read_label_txt(data_dir)

#print('image_dir: ', image_dir[0:5])

print('labels: ', labels[0:5])

if __name__ == '__main__':

main()

sklearn 自帶資料集以及生成資料集

from sklearn import datasets toy datasets boston for regression x,y datasets.load boston return x y true print boston x.shape,y.shape iris for classif...

Python生成資料列表

跟我這樣做 定義訓練引數 定義需要用到的變數 列表等 遍歷每一類別的,並記錄每一類別的數量和總數量 將遍歷的路徑 對應的類別儲存到第二步定義的列表中 亂序後將相關資訊儲存到json檔案 let s do it import os import random train parameters 標籤資訊...

TPC DS 生成資料

其實,使用 tpc ds 生成系統效能測試的資料,說簡單也簡單,說難,確實也不好做!關鍵是在每一步的操作中,如果遇到了問題,該怎麼樣處理,這個是個問題的關鍵。下面就將生成的步驟簡單描述一下,好記性不如爛筆頭呀!通過以上六步驟,就可以將 tpc ds 資料全部 load 到對應的表中去,也就生成了相應...