在 Perl 下下载压缩文件
Downloading a compressed file under Perl
我正在尝试下载一个 .tar.gz 文件(然后我将解压缩...但那是以后的事了。)
我搜索了 CPAN、Whosebug 和 Perl Monks,下面的代码片段下载文件并将其存储在磁盘上(并且在您按下 <>
的回车键之前不会删除它。)
use LWP::UserAgent;
use File::Temp;
# Create temporary file, and delete on script-exit
my $tmp = File::Temp->new( TEMPLATE => 'hathiXXXX', SUFFIX=>'.tar.gz', UNLINK=>1 );
my $uri = 'http://lucas.ucs.ed.ac.uk/test/hathi_full_20150701.txt.gz';
my $ua = LWP::UserAgent->new();
# Set the mime-type for a .tar.gz file
$ua->default_header('Accept' => 'application/x-gzip');
# ':content_file' => $tmp->filename is LWP magic to write to a file
my $res = $ua->get($uri, ':content_file' => $tmp->filename);
print $tmp->filename . "\n";
# Once you hit enter, the temporary file is deleted
<>;
使用wget
我得到一个可以解压的文件。
上面的脚本保存了一个文件.....我打不开。
两个 return 文件大小相同,具有相同的 md5sum
校验和,并且似乎具有相同的前 64 字节和后 64 字节.....
我错过了什么?我如何获得这个该死的文件?
谢谢...
(Perl:5.18.2; LWP::UserAgent:6.05; File::Temp:0.23)
您正在下载的文件是 txt.gz 文件,似乎包含制表符分隔的数据,而不是 tar 格式文件。
****GGNNNNN*****
TIP - 阅读 ACTUAL 问题!!!
正在下载的文件具有后缀 .txt.gz
- 它不是 tar
文件。使用 GUI 工具打开它会起作用,因为它们不会做出 愚蠢的假设 并且无缝 select 正确的工作工具。
以txt.gz
结尾的文件需要用gunzip
解压,而不是tar
我正在尝试下载一个 .tar.gz 文件(然后我将解压缩...但那是以后的事了。)
我搜索了 CPAN、Whosebug 和 Perl Monks,下面的代码片段下载文件并将其存储在磁盘上(并且在您按下 <>
的回车键之前不会删除它。)
use LWP::UserAgent;
use File::Temp;
# Create temporary file, and delete on script-exit
my $tmp = File::Temp->new( TEMPLATE => 'hathiXXXX', SUFFIX=>'.tar.gz', UNLINK=>1 );
my $uri = 'http://lucas.ucs.ed.ac.uk/test/hathi_full_20150701.txt.gz';
my $ua = LWP::UserAgent->new();
# Set the mime-type for a .tar.gz file
$ua->default_header('Accept' => 'application/x-gzip');
# ':content_file' => $tmp->filename is LWP magic to write to a file
my $res = $ua->get($uri, ':content_file' => $tmp->filename);
print $tmp->filename . "\n";
# Once you hit enter, the temporary file is deleted
<>;
使用wget
我得到一个可以解压的文件。
上面的脚本保存了一个文件.....我打不开。
两个 return 文件大小相同,具有相同的 md5sum
校验和,并且似乎具有相同的前 64 字节和后 64 字节.....
我错过了什么?我如何获得这个该死的文件?
谢谢...
(Perl:5.18.2; LWP::UserAgent:6.05; File::Temp:0.23)
您正在下载的文件是 txt.gz 文件,似乎包含制表符分隔的数据,而不是 tar 格式文件。
****GGNNNNN*****
TIP - 阅读 ACTUAL 问题!!!
正在下载的文件具有后缀 .txt.gz
- 它不是 tar
文件。使用 GUI 工具打开它会起作用,因为它们不会做出 愚蠢的假设 并且无缝 select 正确的工作工具。
以txt.gz
结尾的文件需要用gunzip
解压,而不是tar