プロが教える店舗&オフィスのセキュリティ対策術

1300個のフォルダがあり、各フォルダにtxtファイルが格納されています。
各txtファイルのindex(行名)は同名、同順で60483行あり、値だけ異なります。
各txtファイルは名前に規則性はありません。

これを一つのtxtファイルにまとめる、つまり、60483×1300のtxtファイルにする方法を教えてください。

LinuxのコマンドかPythonのプログラムを使うかのいずれかの方法が知りたいです。

よろしくお願いいたします。

A 回答 (3件)

マルチすんな

    • good
    • 0

>60483×1300のテーブルになっている一つのtxtファイルをつくるということです。



ん~、つまり各indexの値を集計するわけではなく、csvなどのような表形式で値を追加していくってことですかね?
60483「行」×1300「列」ってことですね?

それはコマンド一発では難しいですね。
先の回答に書いたようなスクリプトを書くしかないと思います。
具体的にはファイルの内容(固定長なのかとか、デリミタは何なのかなど)にもよりますので書けませんが。
配列だけで処理できるなら比較的簡単ですが、メモリが足りるかどうか。
今後のことを考えたらDBに格納してしまったほうが何かと便利かもしれませんね。
    • good
    • 0
この回答へのお礼

ありがとうございます。
はい、60483「行」×1300「列」ということです。
やはりスクリプト書くしかないですか。
pythonを練習してるのですが、pandasでtxt読み込んで、値を取り出して、つなげる、という作業を1300回for文で繰り返すって感じでしょうか。

ちなみに、1300個のフォルダからtxtファイルを取り出して、一つのフォルダにまとめるのは、findコマンドとかでできそうな気がするのですが、どうでしょうか?

お礼日時:2020/03/27 14:56

「60483×1300のtxtファイルにする」というのが今一つわからないのですが...



ディレクトリ構造やフォルダ名によりますが、今いる階層に該当の1300フォルダがあり、それらの中に対象となるテキストファイルしか入っていないのであれば

cat ./*/* > kekka.txt

で行けると思いますよ。
ただしかなり時間はかかるし、できたテキストファイルの容量もかなり大きくなりそうですが。

まさかindexの値を合計するとかではないですよね?
その場合はperlやPythonでも何でもいいですが、1ファイルずつ開いて値を読み込んで計算して、というのをぐるぐる回さなければなりませんが。
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
説明不足ですみません。
「60483×1300のtxtファイルにする」ですが、1300個の各ファイル(各サンプル)が60483の項目に対する固有の値を持っていて、その値を個々のファイルから取り出して一つのテキストファイルに結合する、という意味です。
60483×1300のテーブルになっている一つのtxtファイルをつくるということです。

お礼日時:2020/03/27 13:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!