Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl。如何打开csv文件,计算它有多少行和列_Perl_File_Parsing_Csv_Count - Fatal编程技术网

Perl。如何打开csv文件,计算它有多少行和列

Perl。如何打开csv文件,计算它有多少行和列,perl,file,parsing,csv,count,Perl,File,Parsing,Csv,Count,我有一个msft.csv文件。列之间用“,”分隔。实际上是一张桌子。无法发布图片,不了解如何附加文件 我的任务是: 打开文件,计算并打印它有多少行和列。列之间用“,”分隔 打开文件并打印以下列的最大值和最小值: 开盘、高点、低点、收盘、成交量、调整收盘及相应日期 打开文件,计算并打印以下列的平均值: 打开,高,低,关闭,音量,调节关闭 我读过一些文学作品,但做不了什么有用的事。实际上我所能做的就是打开文件并打印出来 我想我应该使用Text::CSV模块,但我想不出正确的语法 我在这里通读了前6章

我有一个msft.csv文件。列之间用“,”分隔。实际上是一张桌子。无法发布图片,不了解如何附加文件

我的任务是:

  • 打开文件,计算并打印它有多少行和列。列之间用“,”分隔
  • 打开文件并打印以下列的最大值和最小值: 开盘、高点、低点、收盘、成交量、调整收盘及相应日期
  • 打开文件,计算并打印以下列的平均值: 打开,高,低,关闭,音量,调节关闭
  • 我读过一些文学作品,但做不了什么有用的事。实际上我所能做的就是打开文件并打印出来

    我想我应该使用Text::CSV模块,但我想不出正确的语法

    我在这里通读了前6章 我也读了一些关于
    但到目前为止我是零分

    如果可能的话-如果能看到使用/不使用模块的解决方案,那就太好了。 我会设法弄清楚你在那里做了什么,但如果不太麻烦的话,如果你能至少解释一下,我将不胜感激

    关于我应该读什么文学作品有什么建议吗?有什么有用的链接吗

    p、 英语是我的第二语言,所以请原谅我的语法


    p、 注:我可以用文本文件进行smtg,但我没有看到一个表格示例。

    类似的内容应该适合您:

    #!/usr/bin/perl
    use strict;
    use warnings;
    
    my $filename = 'test.txt';
    my $line;
    my $lines = 0;
    my @columns;
    
    open(my $fh, '<', $filename) or die "Can't open $filename: $!";
    
    $line = <$fh>;
    @columns = split(',', $line);
    $lines++ while <$fh>;
    close $fh;
    
    print "$lines lines\n";
    print scalar @columns . " columns\n";
    
    #/usr/bin/perl
    严格使用;
    使用警告;
    我的$filename='test.txt';
    我的美元线;
    我的$line=0;
    我的@columns;
    
    open(my$fh),我试着使用module。我试着使用split。只是我找不到合适的示例,语法也不正确。我被困在第一个tast-计算行和列。#!/usr/bin/perl使用strict;使用warnings;open fh,“msft.csv”或die$!;my@array=;my$scalar=@array;print“file has$scalar rows\n”;退出;我获取行的唯一方法。如何将其拆分为列并计数?文件日期打开高低关闭卷Adj Close 8/6/2013 31.55 31.67 31.38 31.58 36331500 31.58真棒-它工作了。它产生了正确的输出。150行。7列。现在,我将尝试计算过程。谢谢。这适用于re在字段值中没有嵌入逗号。如果必须处理此问题,字段将用双引号括起来。此时,您需要一个或类似的模块来正确处理引号。您能向我解释一下为什么我们使用$line吗?为什么$line=;生成顶行,而不是整个文件。这两者之间有区别吗$fh和fh$fh正是我命名的文件句柄。你可以使用你想要的。file,fh。两者都可以。至于为什么只生成一行,是因为perl的内置输入记录分隔符默认为一行。为什么我们使用$line$line=$fh和than columns=split(‘,’,$line)columns=split(‘,‘,’,)columns=split(‘,’,’)呢列=拆分(“,”,$fh)不起作用。