• ベストアンサー

pythonでファイルのアクセス方法がわかりません

http://www.geocities.jp/m_hiroi/light/pyalgo31.html このサイトにある「ハフマン符号のプログラム(プログラムリスト2)」を利用して 適当な文字列が入力されているtest.txtを圧縮し結果のように出力したいのですが 対話モードでhuffman.pyを走らせても >>> ==================== RESTART ===================== >>> option error 0.011 >>> と出力されてまいます。 どのようにtest.txtをopenすれば良いのでしょうか教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • eroermine
  • ベストアンサー率18% (83/444)
回答No.2

main() の中を読んでみてください。 使用法は encode の場合 huffman.py -e inputfile outputfile ソースのまま使う場合は python huffman.py -e inputfile outputfile getopt はかえって分かりにくいですね。

hama-01
質問者

お礼

なるほど!できました! ありがとうございます

その他の回答 (1)

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

>対話モードでhuffman.pyを走らせても 対話モードで使うものじゃありません。 なので、 >option error となっています。

hama-01
質問者

お礼

返信ありがとうございます コマンドプロンプトでhuffman.pyを実行しても同じ結果になってしまいました やはり、huffman.pyを使うためのコマンドがあると思うのですが それがわかりません…

関連するQ&A

  • ハフマン符号のプログラム

     以下の問題に回答できる方,いらっしゃいましたらソースファイルと実行結果を送ってください。  ファァイル(記号列)を読み込んで,ハフマン符号によりファイルを圧縮するプログラム(C言語)を作成する(プログラムは,圧縮を行うものと,解凍を行うものの2つ作る)。また,いくつか適当なファイルに対して,圧縮を行い圧縮率を測定する。 (1)圧縮プログラムについて  圧縮のステップ  (a)入力ファイルを読み込み各記号の出現頻度をカウントする。  (b)得られた出現頻度を使って各符号のハフマン符号を生成する。  (c)各符号の出現頻度を出力ファイルに書き出す。  (d)もう一度入力ファイルを読み込みながら各符号をハフマン符号で置き換え    て出力ファイルに出力する。圧縮ファイルの形式は次のようになる。   0x00の  0x01の … 0xffの 先頭文字の 2文字目の … 終端文字の   出現頻度 出現頻度 出現頻度 符号語   符号語    符号語    (c)で書きこむ部分      (d)で書きこむ部分 (2)解凍プログラムについて  解凍のステップ  (a)各符号の出現頻度を圧縮ファイルから読み込む。  (b)得られた出現頻度を使って各符号のハフマン符号を生成する。  (c)圧縮ファイルの符号語を読み込みながら各符号のハフマン符号と比較しも    し一致したらその記号を解凍ファイルに出力する。  (d)(c)をファイルの終わりもしくは出現頻度をすべて足し合わせた記号数分処   理するまで繰り返す。  関数について  関数get_bit  ファイルから1bit読み込んで戻り値として返す。  (ファイルポインタはグローバル変数で用意する)  関数put_bit  引数として0,または1を渡すと1bitずつファイルに書き込む。  (ファイルポインタはグローバル変数で用意する)

  • JPEG画像にさらにハフマン符号化をかけると・・・?

    現在卒業研究の一環で「なぜJPEG画像にハフマン符号化をかけてもほとんど圧縮できないのか?」というテーマについて考えています。 研究の過程でハフマン符号化プログラムを組み、様々な種類のJPEG画像を圧縮し、圧縮率を検証しました。その結果、フルカラー画像もグレースケール画像もほとんど圧縮できませんでしたが、単純な線画(白地に黒い線を数本引いただけのもの)の画像のみ元の2割程度まで圧縮できました。 最初はやはりJPEG画像には元からハフマン符号化がかかっているから圧縮率が悪いのかな、とも思ったのですが、『単純な線画の画像のみ元の2割程度まで圧縮できている』ので、単に「元からハフマン符号化がかかっているから」では説明がつかないように思えます。 おおまかで構いませんので、これの原因について皆様のご意見をお聞かせください。よろしくお願いします。

  • ハフマン符号化による圧縮

    1と0でできたN×Nの行列 例えば 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 というような行列を ___ |01|1 1 1 0 |01|1 0 0 0  ̄ ̄ ̄  1 1  0 0 1 1  1 0  0 1 1 0  1 1  0 0 1 0  0 0  1 1 0 0 このように4ビットごとに分けてハフマン符号化による圧縮を行うプログラムを作りたいと考えていますが、よくわかりません。どなたか教えてください。 また四角で囲んだところは0101と考えていいそうです。

  • 2元ハフマン符号化プログラムが作れなくて困っています。

    以下のC言語のプログラムを作成出来る方、いらっしゃいましたらソースファイルを載せて下さい。 2元ハフマン符号化プログラム:具体的な無記憶情報源が入力されたときに、そのハフマン記号を出力される ご教授よろしくおねがいします

  • python

    game.py class janken: def rsp(): import random count = 0 i = 0 hands = [] bk_hands=["ぐー","ちょき","ぱー"] f = open("rsp.txt","w") f.write("ぐー\nちょき\nぱー")・・・ mein.py mport game #各機能のクラスのインスタンスを作成する j = game() #無限ループで対話をしていく #ユーザーが終了コマンドを入力するまで繰り返す while True: #機能呼び出しのコマンドを表示する #じゃんけんの他にも機能があれば、2,3と増やしていくべし print('何をしますか?') print('1: じゃんけんする') print('9: 終了する') #入力されたコマンドに応じて機能を呼び出す act = int(input('整数で番号を入力:')) #1が入力されたらじゃんけんのメソッドを呼び出す if act == 1: j.rsp()・・・ この場合にmein.py", line 4, in <module> j = game() TypeError: 'module' object is not callable と出るのですが、なぜ呼び出してくれないのでしょうか

  • jpeg画像をより小さく圧縮するために

    現在卒業研究で「画像圧縮によるホームページの高速表示」というテーマを研究しています。これは (1)自PCにサーバソフトをインストール (2)HTMLファイル内に含まれる画像ファイルを圧縮するプログラムをそれに組み込む (3)圧縮処理したHTMLファイルに解凍プログラムを添付、送信 (4)受信側でHTMLファイル内の画像を解凍、ページを表示 というのが大まかな流れです。 そこで、jpegファイルの圧縮に有効なプログラムをハフマン符号化をベースにCで作っているのですが、現在のjpegの規格に使われているハフマン符号化アルゴリズムよりもさらに圧縮率の高いプログラムを作らなければなりません。ちなみに差分値化処理は試しましたがあまり効果はありませんでした。 おおまかなご説明で構いませんので、何か有効な方法があればなにとぞご教授ください。よろしくお願いします。

  • python urlopen error について教えてください

    pythonを、勉強したてです。 開発環境は、python2.6/win XP です。 HTMLを解析するために、 http://www.crummy.com/software/BeautifulSoup/ からライブラリーを入手して、C:\Python26\Lib\site-packages\BeautifulSoup-3.1.0.1 に配置しました。 python環境設定のパスは、通してあります。 プログラムは、http://www.freia.jp/taka/blog/169 の「myparser.py」をそのまま使いました。(動作テストのため) ------- 結果 -------- メッセージ ファイル名 行 位置 Traceback <module> C:\Python26\src\myparser.py 50 main C:\Python26\src\myparser.py 41 urlopen C:\Python26\Lib\urllib2.py 124 open C:\Python26\Lib\urllib2.py 383 _open C:\Python26\Lib\urllib2.py 401 _call_chain C:\Python26\Lib\urllib2.py 361 http_open C:\Python26\Lib\urllib2.py 1130 do_open C:\Python26\Lib\urllib2.py 1105 URLError: <urlopen error [Errno 11001] getaddrinfo failed> ネットワーク環境は、プロキシ・サーバを返していますが、どうやっても上記のエラーで引っ掛かってしまいます。

  • ハフマン符号化の問題を解くプログラム

    ハフマンの符号化の問題を解くプログラムをC言語(コンソールアプリケーション)で作りたいのですが ファイルの圧縮とかをするプログラムはいろいろなサイトにあったのですが、 簡単な情報源を与えられたものを符号化するプログラムで参考にできるようなサイトは見つかりませんでした。 誰かプログラムの例を教えていただけないでしょうか? 入力する例はつぎのようなものです S=(a1, a2, a3, a4, a5, a6/0.35, 0.15, 0.15, 0.20, 0.10, 0.05)

  • pythonでのスクレイピング、ファイル操作につい

    pythonで特定のHPの<a>タグから、「title」を取ってきて、「title」.txtとというテキストファイルを複数作りたいのですが、エラーが出て困っています。 beautifulsoupを用いて取ってきたタイトル名をファイル名するソースコードです。 links=soup.findAll("a",href=s,title=fuyou) for link in links:  title=link.get("title")  filename=title+".txt"  print filename  f2=open(filename,"w").close() >>> バックパック.txt 寝袋(シュラフ)/マット.txt Traceback (most recent call last): File "C:\Python27\test1.py", line 35, in <module> f2=open(filename,"w").close() IOError: [Errno 2] No such file or directory: u'\u5bdd\u888b\uff08\u30b7\u30e5\u30e9\u30d5\uff09/\u30de\u30c3\u30c8.txt' 上のようなエラーが出ます。途中までTXTファイルは出来るのですが、途中からこのようなエラーが出ます。 さっぱり意味が分かりません。どなたか助けてください。

  • Pythonでsplit()が効きません…

    ローカルに保存したtxtファイルから文字列を読み込んで、その文字列をsplit()したいのですが何故だか出来ません。 何が原因と考えられるか、教えてください。 >>>f = open('./local.txt', 'w') >>>f.write('1234@5678') >>>f.close() >>>f = open('./local.txt', 'r') >>>print f.read() 1234@5678 >>>a = f.read().split('@')[0] >>> print a >>>b = f.read().split('@')[1] IndexError: list index out of range ※ print a の出力結果は空でした。 f.read().encode('utf-8').split('@')も同様の結果となりました。

専門家に質問してみよう