答えて
my %data;
my @FILES = @ARGV;
# or maybe @FILES = glob("some/directory/*.ext");
これはPerlであるため、さまざまな方法があります。
彼らは、コマンドライン引数なら、あなたはそれらの上にこのようなすべての反復処理することができ、たとえば、すべてのファイルが@ARGV
であると仮定すると、
# 1. Open and load each file
foreach my $file (@FILES) {
local $/ = undef;
open my $fh, '<', $file;
$data{$file} = <$fh>;
}
# 1b. Using map
%data = map {
local $/=undef;
open my $fh, '<', $file;
my $data = <$fh>;
$_ => $data
} @FILES;
# 2. Leverage your operating system
foreach my $file (@FILES) {
$data{$file} = qx(/bin/cat "$file");
}
# 3. Use a module
use File::Slurp;
foreach my $file (@FILES) {
$data{$file} = File::Slurp::slurp($file);
}
# 3b, using map
use File::Slurp;
%data = map { $_ => File::Slurp::slurp($_) } @FILES;
このperlfaqエントリを参照してください:コードの繰り返し処理は、コマンドラインとして渡され、この場合には、ファイル名のリストの上に
my %hash = (
filename => $file_content,
# ...
);
my %data;
foreach my $fn (@ARGV) {
open (my $IN, $fn) or die "couldn't open $fn: $!";
$data{$fn} = join "", <$IN>;
close $fn;
}
foreach my $key (keys %data) {
print "File $key:\n$data{$key}\n\n\n";
}
:How can I read in an entire file all at once?
ハッシュは次のように作成することができます@ARGVの引数。それぞれのファイル名に対して、ファイルハンドルを開き、ファイルの各行を配列の要素としてロードする配列コンテキストでファイルハンドルを読み込みます。この場合、私たちは無名配列に読み込み、joinに渡されます。結合は配列の要素を結合します。この場合は空の文字列をセパレータとして使用します。その結果、ファイル内容全体を含む1つの文字列が、ファイル名をキーとしてハッシュに格納されます。 2番目のループは結果を出力します。
大きなファイルの場合、これは自分自身を高速メモリから実行するための良い方法です。ストリーミングモードでデータを処理する方法について考えてみましょう。
なぜwhile(<>)を使わないのですか? –
@Nathan Fellman - スタイルの問題、私は思います。 @ARGVにあるファイル名に頼るのではなく、関数に直接変換できるので、私はこのようにしました。また、そのイディオムで現在読み込まれているファイルの名前を取得する方法を調べる気がしなかった。 –
:あなたがしようとしているものの例を与えることができ
@array =();
while (<>) {
push @array, $_;
# or any other manipulation on the lines
# for instance extracting a key and value from
# the line and putting them into a hash
}
- 1. 複数のファイルを読む
- 2. 複数のRDSファイルを読む
- 3. 複数の.dtaファイルを読み込む
- 4. 複数のファイルを読むStreamReader
- 5. ディレクトリから複数のファイルを読む
- 6. 複数のファイルを読む(wavread)
- 7. ストリーム:複数のファイルを読む
- 8. JQueryで複数のJSONファイルを読む
- 9. Valaで複数のファイルを読む
- 10. 複数のxmlファイルをPHPで読む
- 11. C:複数のCSVファイルを読む
- 12. 読む複数のマクロ有効Excelファイル
- 13. 複数のファイルを複数のリストに読み込む
- 14. Perl、複数のファイルから1つの変数を読む
- 15. パンダ:複数のtxtファイルを含むzipファイルを読み込む方法は?
- 16. 複数のJavaScriptファイルから複数の関数を読み込む
- 17. 複数のクラスインスタンスの単一ファイルから複数のプロパティセットを読み込む
- 18. 複数のディレクトリをループしてステータスのhtmlファイルを読む
- 19. JAVAを使用してフォルダ内の複数のファイルを読む
- 20. 複数のRowTagsを持つSparkのXMLファイルを読む
- 21. 複数のファイルを読み込んで複数のテーブルに書き込むバッチジョブ
- 22. 複数のファイルのすべての行を同時に読む
- 23. AlluxioのSpark javaで複数のファイルを読むのが遅い
- 24. Python - マルチスレッドヘルプ - 複数のファイルを読む - ETLをSQL Serverに変換
- 25. .map()を使ってFileReaderで複数のファイルを読む
- 26. 2GBを超える複数のpcapファイルを読むには?
- 27. bashスクリプト/シェルスクリプトを使って複数のファイルを読む
- 28. ファイルのアップロードで複数の行を読む
- 29. 複数のチャンクを1つのファイルに保存/読み込む?
- 30. asp.netのフォルダから複数のpdfファイルを読むには?
を何がうまくいかない? –
どのようにファイルを指定していますか?名前のリストまたはglob(ワイルドカード) – justintime