質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

1444閲覧

pythonで拡張子が.exeになっている.rarファイルを解凍

mikumikuDM

総合スコア81

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/03/21 16:31

編集2022/03/22 14:01

前提

フォルダ内に以下のような.exeになっている.rarファイルがあります、
イメージ説明

こちらのファイルを解凍する際は.exeファイルをダブルクリックすると以下のような画面がでます。
イメージ説明
作成先フォルダは指定できるようになっており、解凍を押すと解凍ができます。

実現したいこと

こちらの.rarファイルをすべて解凍するためのpythonのプログラムを作成したいです。
条件として
WinRARがアクティブウィンドウになっていない状態でも動作してくれる(解凍中に他の作業をする可能性があるため)
解凍先フォルダをD:\解凍用に変更

試してみたソースコード

python

1import subprocess 2import time #プログラムに待機時間を与えるために使用 3 4Program = r"D:\解凍用\RJ0000.part1.exe" 5folder = r"D:\解凍用" 6 7subprocess.Popen([Program]) 8time.sleep(30) #これがないとすぐにWinRARウィンドウが消えてしまうため記入

ソースコードの実行結果

以下のようなウィンドウがでました
イメージ説明

この状態から解凍先フォルダを変更し、解凍を実行する必要があります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

import pyunpackを使用した方法ではできませんでしたが、import rarfileを使用してファイルを解凍することができました。ただこの方法ですと問題があります。

python

1import rarfile 2rarfile.UNRAR_TOOL = r"D:\UnRAR.exe" #UnRAR.exeのあるフルパスを入力 3filename = r"D:\解凍用\RJ0000.part1.rar" #解凍元のファイル 4foldername = r"D:\解凍用" #解凍先のファイル 5rf = rarfile.RarFile(filename) 6rf.extractall(foldername)

こちらのソースコードを使用すればもともとrarファイルだったファイルを解凍するときは問題なく行うことができました。
しかし、元が.exeのファイルを解凍すると、.part1.rarという名前のファイル(元は.part1.exeという名前のファイル)のみの解凍になってしまいます。(元が.rarファイルであるファイルは.part1.rarを解凍すると.part2.rar.から最後のpartの.rarファイルまで解凍してくれる)。

参考にしたページ

https://code-examples.net/ja/q/34a8e7
https://ky-orihara.hatenablog.com/entry/2019/02/19/022738

投稿2022/03/28 17:40

mikumikuDM

総合スコア81

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そのexeを実行するんではなく、そのexeファイルをrar解凍してしまいましょう

投稿2022/03/21 23:59

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikumikuDM

2022/03/22 13:41 編集

.exeを実行するんではなく、そのexeファイルをrar解凍というのは具体的にどのようにすることを 仰っているのでしょうか?文章からは具体的にどのようにするのかわかりません。 .exeファイルの名前の部分の.exeを.rarにして以下のプログラムで解凍する例をあげます ---------------------------------------------------- import pyunpack filename = r"D:\解凍用で作成\RJ0000.part1.rar" destfolder = r"D:\解凍用で作成\テスト" pyunpack.Archive(filename).extractall(destfolder) ---------------------------------------------------- この方法ですと名前を変更されたファイルが上手く解凍できないのですが私の環境以外ではできるのでしょうか?エラーコードは以下です patool can not unpack ERROR: D:\𓀗pō쐬\RJ0000.part1.rar Can not open the file as archive
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問