• 締切済み

テキストファイルを分割&ページ数を追記しHTMLファイルにするプログラム

テキストファイルを分割&ページ数を追記しHTMLファイルにするプログラムを教えてください。 (Perl/Ruby/Pythonのいずれかで) テキストファイルを分割&ページ数を追記しHTMLファイルにするプログラムを教えてください。 (Perl/Ruby/Pythonのいずれかで) 手元にあるテキストファイルを指定の行数(もしくは文字数)で分割しHTMLファイルにしたいと考えています。 [sample.txt(10分割)→1.html~10.html] フリーの分割ソフトはあるようですが ・分割とHTML化を同時にしたい ・ページ下部にファイルに対応したページ番号がつけたい  (1.htmlの下部に:<p>1ページ</p>のようなイメージ) ・最近プログラミングの勉強をしていていろんなコードを見てみたい という理由で利用しないつもりです。 何卒よろしくお願いいたします。

  • Perl
  • 回答数3
  • ありがとう数2

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

Python版です。2.5からの機能を使えばもうちょっと簡潔にできそうなきもしますが、 まだそれに慣れておりませんので使いませんでした。 Pythonスクリプトは行頭の空白が消えるととても悲しいことになるので、 _ で置き換えています。試す際にはコピペの後でスペースに置換してください。 iimport sys def take_nlines(fp, n=100): ____while True: ________#l = [fp.next() for x in range(1, n+1)] ________l = [] ________for i in range(1, n+1): ____________try: ________________l.append(fp.next()) ____________except StopIteration: ________________yield l ________________raise StopIteration ________yield l ### main ### fp = open(sys.argv[1]) idx = 1 for content in take_nlines(fp): ____try: ________ofname = "%d.html" % (idx, ) ________ofp = open(ofname, 'w') ________ofp.writelines(content) ________ofp.close ____except : ________print "Unexpected error:", sys.exc_info()[0] ________raise ____idx += 1 fp.close() 三つのどれもわかりやすさ最優先で書いたわけではないので、なにか疑問な点があれば 遠慮なく補足欄で質問してください。

kawamori_t
質問者

お礼

ありがとうございます。 Pythonはインデントが大事って言いますもんね。 これを機に勉強したいと思います。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

えーと、それじゃあ分割のところだけわかればいいですか? こんな感じでどうでしょう。 1.html, 2.html, ... に100行ごとに切り分けます。 行数などは適当に修正してください。 とりあえずPerlとRubyで。 興が乗ったらあとでPythonでもやってみます。 use strict; my $linecount = 100; my $file = shift; open my $fh, '<', $file or die "can't open $file($!)\n"; my @content = <$fh>; close $fh; my $idx = 1; while (@content) { my $outfile = $idx . ".html"; open my $ofh, '>', $outfile or die "can't open $file($!)\n"; print $ofh splice @content, 0, $linecount; close $ofh; $idx++; } ##### f = ARGV.shift linecount = 100 idx=1 open(f) do |io| lines = io.readlines while (chunk = lines.slice!(0, linecount)).length > 0 open(idx.to_s + '.html', 'w') {|of| of.write chunk} idx += 1 end end

kawamori_t
質問者

お礼

回答ありがとうございました。 Perl/Ruby/Python全てを嗜んでおられるとは凄いですね。 見習って私も取得に励みます。 分割プログラム早速試してみます!

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

テキストファイルのHTML化って具体的には何をするんですか? たぶん分割してできたファイルの拡張子を .htmlにするだけではないですよね。

kawamori_t
質問者

補足

コメントありがとうございます。 説明不足で申し訳ありません。 作成した文書をアップして携帯電話で読めるようにしたいのです。 1ページで表示すると量が多いので何ページかに分割たいのです。 あらかじめHTMLのテンプレートを作ってあるので 分割したテキストをそこに埋め込みたいと思っています。 またファイルのナンバーにあわせて前後へのリンクを作る予定ではありますが この部分に関しては自分で追加できると考えているのであえて質問にはあげませんでした。 例)2.htmlの場合 <html> <テンプレート> 分割したテキスト:2番目(改行の必要なし) <テンプレート> <a href="1.html" accesskey="">1.前へ</a> 2ページ  <a href="2.html" accesskey="3">3.次へ</a> </html>

関連するQ&A

  • テキストファイルを分割するプログラム

    テキストファイル中の冒頭4文字をファイル名にしてファイルを分割するプログラムを作りたいのですが、よくわかりません。 たとえば、テキストファイルのデータが aaaABC bbbDEF のとき、 ファイル名がaaa.txtで、データがABC のファイルと ファイル名がbbb.txtで、データがDEF のファイルが作成されるようにしたいのです。どのようにすればいいのでしょうか?

  • perlでファイルを分割するプログラム

    3Mを超える1つのテキストファイルに入っているデータある目印をもとに分割したいと思っています。分割ソフトをさがしたのですが見つけられませんでした(サイズで分割はありました)perlでテキスト処理ができると思い「テキスト処理とCGIのためのPerlプログラミング 伊藤 博康 (著) 」という本を借りてきたのですが、そのようなサンプルがなく1からperlを勉強する時間もないため、ここで質問させていただきました。ネット上にファイルを分割するperlのサンプルプログラムがありましたら教えてください。よろしくお願いします。

    • ベストアンサー
    • Perl
  • HTML5 で テキストファイルを読込みたい

    HTML5 を書いています。 サーバ側に hoge.txt という設定ファイルがあり、このファイルを起動時に読込みたいと考えていいます。 <INPUT TYPE="FILE"> を FileReader() で読込む確認は行えていますが、プログラブ側でファイル名を指定する方法がわかりません。 HTML5 でプログラム側からテキストファイルを開く事は可能でしょうか?

    • ベストアンサー
    • HTML
  • バッチファイルでテキストファイルを分割したい

    テキストファイルを、指定した数値の倍数の行を、指定した個数に分割するバッチファイルを作成しようとしています。 例えば、以下の様な内容の「in.txt」というテキストファイルを3分割したい場合、 ----- in.txtの内容 ----- 1 2 3 4 5 6 7 8 9 10 ------------------------ 以下の様な内容で、 「out1.txt」「out2.txt」「out3.txt」として出力したいのです。 ----- out1.txtの内容 ----- 1 4 7 10 -------------------------- ----- out2.txtの内容 ----- 2 5 8 -------------------------- ----- out3.txtの内容 ----- 3 6 9 -------------------------- 自分はプログラミングの知識がないので、WEBに書かれている構文を少し書き換えたりして試しているのですが、うまく行きません。 AWKを使い、以下のようなバッチファイルを作成して実行してみましたが、「out3.txt」だけがうまく行きませんでした。構文の意味も分からないので修正も出来ません。 awk "NR%%3==1" "in.txt" > "out1.txt" awk "NR%%3==2" "in.txt" > "out2.txt" awk "NR%%3==3" "in.txt" > "out3.txt" AWKの解説ページを読み始めたのですが、時間的な猶予があまり無く、今回質問させて頂いた処理が出来るようになるまでまだ時間が掛かりそうなので、どなたかお分かりの方がおられましたお教え頂けないでしょうか。 AWKでなくとも、sedでもPerlでもその他のコマンドでも構いませんし、スクリプトファイルを読み込めるコマンドでしたらスクリプトでの書き方でも結構ですので、ご存知の方がおられましたらお教え頂けないでしょうか。

  • HTMLページに外部テキストファイルを取り込むには?

    HTMLのページに、一部だけ外部ファイルのデータを取り込もうとしています。 <HTML> <BODY> <P><TABLE WIDTH="450" > <TR> <TD><IMG SRC="picture1.jpg"></TD> <TD >ここにJavascriptで自由更新文(1)を入れる</TD> </TR> </TABLE><BR> <TABLE WIDTH="450"> <TR> <TD><IMG SRC="picture2" ></TD> <TD>ここにJavascriptで自由更新文(2)を入れる</TD> </TR> </TABLE> </BODY> </HTML> 上のような、写真と説明文がセットになったテーブルがいくつか配置されているページがあるとします。 その説明文を、HTMLを見たこともない人物に自由に更新してもらわねばなりません。 そこで、例えば「1つめの写真の説明文は1.dat、2つめの写真の説明文は2.dat …と、単純にテキストだけを打った.datとか.txtファイルをサーバにアップロードしてもらい、htmlページはJavascriptでその.datファイルをテーブル内に読み込むようにして使いたいのですが、そのJavascriptはどんな書き方をすればよいでしょうか? <script type="text/javascript" src="1.js"></script>といったように読み込む場合、1.jsの内容は単純なテキストでなく document.write("これは例文です。"); // End といったように、ソースになっていなければダメですよね? これでは間違って「"」等を消されたらファイルが壊れてしまいます。このため、こういう内容でなく、「document.write("」や「");」や「// End 」も無い、単純なテキストだけを外部ファイルにすることはできないでしょうか?

  • テキストファイルを指定文字場所で分割・結合したい。

    現在、勤務する店のブログ内容をテキストファイル形式で保存しています。 ファイル数が膨大になってきたので、結合して一つのファイルにまとめ、必要になったら分割して個別のテキストに戻したいと思っています。 このような作業のできるソフトはあるでしょうか? 行数・サイズで分割するものは見つかったのですが、たとえば,各テキストの上部にある DATE という文字、あるいはファイル名(各ファイルで異なるのですが)の位置で分割したいのです。 よろしくお願いいたします。

  • HTMLファイルを分割し手保存する

    今業務で作成しているHTMLファイルが10MBあります。ファイルを開いて構成のチェックをしないといけないんですが、それをテキストエディタで開こうとするとかなりの時間がかかります。そこでHTMLファイルをいくつかのHTMLファイルに分割してチェックをしようと考えたんですが、方法がわかりません。役に立つツールや方法をご存知の方いらっしゃいましたらよろしくお願いします。

  • 行ごとに文字列をカウント

    以下のような巨大なタブ区切りテキストファイルがあります。 <input.txt> A1 1 2 3 4 A2 none 2 4 6 A3 none none none 1 A4 none none none none .... このファイルの行ごとに"none"の数をカウントさせてout.txtファイルを作りたいです。 <out.txt> 0 1 3 4 .... perlやruby、pythonなどでできる方法が教えていただきたいです。

  • テキストファイルをWordでまとめて開きたい・・・

    たとえば、01.txt~05.txtというファイルがあるとして、これらをWordで開く際、ページ1~ページ5となるようにしたいのですが、Wordの<ファイル>→<開く>ですべてのテキストファイルを選択して開くと、ファイルの数だけWordが立ち上がってしまいます。ひとつのWord内で開くにはどうすればいいのでしょうか?

  • Wordで文字数や、フォント、行数を前ページ変更する方法

     wordを使ってます。  色んなテキスト(.txtファイル)や一太郎の文書を取り込んで、ひとつの文書集(エッセイ)を作っているのですが、ページ設定での文字の大きさや、1ページの行数、文字数をページ設定で全文章にしても反映されません。  どうすれば、全体の行数やフォントの文字の大きさを変更する事が出来るのでしょうか?  

専門家に質問してみよう