簡體   English   中英

如何使用Perl將多個文本文件轉換為.html文件格式的相同文件名?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM