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

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

新規登録して質問してみよう
ただいま回答率
85.50%
文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

2回答

1401閲覧

unzipしたフォルダをpython2で扱いたい。

TOd

総合スコア4

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/02/09 23:50

編集2022/01/12 10:55

実現したいこと

zipファイルをunzipした後、解凍されたフォルダ内のファイルをpython2で扱いたい。

環境

・自機OS:Mac OS
・Amazon LinuxのEC2インスタンス内にscpで<日本語>.zipのフォルダをコピー
・python プログラム名.py 解凍後のディレクトリ名 
でディレクトリを指定し内部から情報を取りたい。

該当のソースコード

Python

1解凍 2with zipfile.ZipFile(dir_name+'.zip') as existing_zip: 3 existing_zip.extractall("./") 4 5path = dir_name + "/*" #dir_nameはディレクトリ名 6jpgs = glob.glob(path) #jpgsに情報が確保されない 7

試したこと

文字コードが異なるのかと思い
file -i <zipファイル名>を実行
→node/directory; charset=binary

解凍のやり方が悪いのか、pythonで解凍したzipを扱うときの作法があるのか知りたいです。

追記

◇zipファイルはプログラムと同じディレクトリに置いてあります。
◇lsの結果
drwxrwxr-x 5 ec2-user ec2-user 148 2月 9 23:11 __MACOSX
-rw-r--r-- 1 ec2-user ec2-user 2151 2月 10 00:41 test.py
drwxrwxr-x 2 ec2-user ec2-user 251 2月 8 02:20 testdata
-rw-r--r-- 1 ec2-user ec2-user 5374 2月 8 01:15 testdata.csv
-rw------- 1 ec2-user ec2-user 8536194 2月 8 02:17 testdata.zip
-rw-rw-r-- 1 ec2-user ec2-user 42 2月 8 02:20 testdata_result.csv
drwx------ 2 ec2-user ec2-user 45056 2月 8 14:04 チューブ綱手
-rw------- 1 ec2-user ec2-user 1656494 2月 8 14:40 チューブ綱手.csv
-rw------- 1 ec2-user ec2-user 28876169 2月 8 15:18 チューブ綱手.zip
-rw-rw-r-- 1 ec2-user ec2-user 0 2月 10 00:41 チューブ綱手_result.csv

※動作テスト用のデータが入っているtestdata.zipとかは正常に読み込まれました。

◇dir_nameの確認
python test.py チューブ綱手
と打った場合、以下プログラムのdir_nameは
チューブ綱手
と出ました。

※プログラム一部抜粋
def read_folder(dir_name):
print(dir_name)
if name == 'main':
args = sys.argv
dir_name = args[1]
print("image load")
img_name, img_byte = read_folder(dir_name)

◇解凍した後はディレクトリの参照がうまくいきません。(チューブ綱手を手入力した場合にうまくいかない)
cd チューブ綱手
-bash: cd: チューブ綱手: No such file or directory

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

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

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

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

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

can110

2020/02/10 00:28

パスが合っていない可能性があるので zipファイルを配置している場所、実行時のカレントディレクトリ、dir_nameに与えている具体的な値(パス)、zipファイル名とzipファイルに圧縮しているフォルダ名(zipファイル名と同じか?)、解凍された中身がある場所を提示ください。
can110

2020/02/10 01:44

ls結果を見るにtest.pyを実行した結果、圧縮されていた「チューブ綱手」というフォルダは出来上がり確かに存在するが、シェル上で「cd チューブ綱手」しても「No such~」となるという状況でしょうか。 可能であればそのzipファイルをどこかにアップ、公開すると第三者が検証でき回答が得られやすくなるかと思います。
guest

回答2

0

解凍のやり方が悪いのか、pythonで解凍したzipを扱うときの作法があるのか知りたいです。

単にファイル名の指定を間違えているだけだと思います。

dir_nameの内容やZIPファイルの中身が不明なので、なんともですが、ZIPの中にdir_nameであらわさsれるフォルダーがあると仮定して、

カレントディレクトリに展開しているので、

PYthon2

1jpgs = glob.glob("./"+dir_name+"/*")

では?

これで違うなら、dir_nameの値やZIPファイルの中身の構成を書いてください。

#質問修正を見ての追記

引数をプリントしているだけで、解凍していないので、その結果は当然です。
プログラムの修正を間違えたのでは?

投稿2020/02/10 00:27

編集2020/02/10 01:22
otn

総合スコア84423

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

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

TOd

2020/02/10 01:03

ご回答ありがとうございます。 dir_nameについては追記に書かせていただきました。 ZIPファイル内はjpgが1000枚くらい入っています。
guest

0

展開先はカレントディレクトリか、pathを指定した場合でもそこからの相対パスになるかと思われます。

extractallを呼び出す際に絶対パスで展開先を指定すれば良いのではないでしょうか。


Python2はすでにEnd Of Lifeを迎えていますので、Python3への移行をおすすめします。

投稿2020/02/10 00:24

hayataka2049

総合スコア30933

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

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

TOd

2020/02/10 01:05

ご回答いただきありがとうございます。 展開先やlsの結果について追記しました。 python3への移行のご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問