[英]How can i convert multiple text files into same filename with .html files format using perl?
Code which i have tried for single file:
#!/usr/bin/perl
use strict;
use warnings;
open my $HTML, '>', 'h.html' or die $!;
print $HTML <<'_END_HEADER_';
<html>
<head><title></title></head>
<body>
_END_HEADER_
open my $IN, '<', 'h.txt' or die $!;
while (my $line = <$IN>) {
# You probably want to do more work here.
print $HTML $line;
}
print $HTML '</body></html>';
close $HTML or die $!;
查詢:
上面的代碼將.txt轉換為.html文件格式。在此代碼中,我嘗試使用單個文件。我對如何使用perl從文件夾中處理多個文件感到吃驚?
輸入文件:
h.txt
e.txt
l.txt
預期輸出;(帶有html formt)
h.html
e.html
l.html
嘗試glob 。 它返回提到目錄的文件名列表。
#!/usr/bin/perl
use strict;
use warnings;
open my $HTML, '>', 'h.html' or die $!;
print $HTML <<'_END_HEADER_';
<html>
<head><title></title></head>
<body>
_END_HEADER_
while (my $file= glob("~/Desktop/*.txt"))
{
open my $IN, '<', $file or die $!;
while (my $line = <$IN>)
{
print $HTML $line;
}
}
print $HTML '</body></html>';
close $HTML or die $!;
寫入新文件
#!/usr/bin/perl
use strict;
use warnings;
my $HTML;
#open my $HTML, '>', 'h.html' or die $!;
while (my $file= glob("~/Desktop/*.txt"))
{
open my $IN, '<', $file or die $!;
my $new_file_name = $file;
$new_file_name=~s/.+\///;
open $HTML, '>', "$new_file_name.html" or die $!;
print $HTML "
<html>
<head><title></title></head>
<body>";
while (my $line = <$IN>)
{
print $HTML $line;
}
print $HTML '</body></html>';
close $HTML;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.