フォルダの中にあるファイル一式に対し、処理をします。
./csv フォルダの中の csvファイル一式に対し、ある処理をして保存するというケースを想定しています。
qiita.rb
import os
import numpy as np
# ----------- path にあるファイルの一覧を配列形式で返す
path = "./csv"
files = os.listdir(path) # ディレクトリにあるファイル一覧を取得
# print(type(files)) # <class 'list'> タイプを確認
# print(files) # ファイル一覧を表示
# -------- for文を使って、ひとつずつファイルを処理する
# i = 0 (修正)初期化は不要でした
# for i in range(len(files)):
# print(files[i]) #処理したファイルを確認する (修正)直接要素を回す方法に変更
for filename in files:
print(filename) #処理したファイルを確認する
# ファイル名の設定
#fullpath = path + "/" + files[i] (修正)直接要素を回す方法に変更
#savefilename = "s_" + files[i] (修正)直接要素を回す方法に変更
fullpath = path + "/" + filename
savefilename = "s_" + filename
savefilefullpath = path + "/" + savefilename
#print(fullpath)
#print(savefilename)
#print(savefilefullpath)
#----CSVを読み込んで配列形式に
f = np.genfromtxt(fullpath, delimiter=",", dtype='float')
# ヘッダ行がある場合 skip_header=1 を追加。 1はヘッダの行数
#---スライシング
F = f[:5]
np.savetxt(savefilefullpath, F, fmt='%.3f', delimiter=",")