【问题标题】:How to get the header from a CSV file and write it to another file?如何从CSV文件中获取标题并将其写入另一个文件?
【发布时间】:2018-08-17 07:07:50
【问题描述】:

如何从 CSV 文件中获取标题并将其写入另一个文件? 如果我在 CSV 文件中没有很多列,则此代码有效,但当我的 CSV 文件包含 200 多列时,它不起作用。它只是将列标题(但不是全部,它们被截断)回显到屏幕上。

@echo off
set /p "header="<book1.csv
echo %header% > "book3.csv"

【问题讨论】:

  • (获取内容 book1.csv)[0] > book3.csv
  • 为什么这个问题被标记为perl
  • @MattJacob:我也想知道,所以我回答了。
  • 我认为用户希望有人给他任何这些语言的代码。

标签: windows perl powershell cmd header


【解决方案1】:
#!/usr/bin/perl
use warnings;
use strict;

use Text::CSV_XS;

my $csv = 'Text::CSV_XS'->new({binary => 1, escape_char => '\\'});
open my $fh, '<', 'book1.csv' or die $!;
my $h = $csv->getline($fh);

my $out = 'Text::CSV_XS'->new({eol => $/, escape_char => '\\'});
open my $fho, '>', 'book3.csv' or die $!;
$out->say($fho, $h);

经过测试

"Header 1","Header, 2","Header \"3\"","Header
4"
1,2,3,4

【讨论】:

    【解决方案2】:

    如果您正在运行 powershell,您应该能够使用Get-Content(别名GC)的-TotalCount(别名-Head-First)参数来获取文件的第一行。

    gc book1.csv -head 1|sc book3.csv
    

    【讨论】:

      猜你喜欢
      • 2019-10-05
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      相关资源
      最近更新 更多