質問編集履歴

3

解決したい事の編集

2020/12/17 07:00

投稿

Savanof
Savanof

スコア33

test CHANGED
File without changes
test CHANGED
@@ -75,3 +75,89 @@
75
75
 
76
76
 
77
77
  恐らくPythonの問題ではなく、ImageJ側の問題の方が強いです。
78
+
79
+
80
+
81
+ ### 追記2
82
+
83
+ この様なコードでzipフォルダーの中のファイルパスをの文字コードを確かめてみたのですが、全てunicode型でした。
84
+
85
+ ```
86
+
87
+ import zipfile
88
+
89
+
90
+
91
+ with zipfile.ZipFile("C://Users//For Programming//Documents//Python Scripts\OutletHDD//RoiSet.zip") as existing_zip:
92
+
93
+ lis = existing_zip.namelist()
94
+
95
+
96
+
97
+ print(lis)
98
+
99
+
100
+
101
+ for i in lis:
102
+
103
+ print(isinstance(i,unicode))
104
+
105
+
106
+
107
+ ```
108
+
109
+ Daregadaさんから教えて貰った下記のリンクを見てみると、恐らく解凍できないのはzipフォルダーの中に入っているファイルが全てunicode型である事が原因だと思います。
110
+
111
+ 「Python 2.7.4 fails while extracting zip files when 'member' is a unicode path.」
112
+
113
+ https://bugs.python.org/msg186264
114
+
115
+
116
+
117
+ そこでZipフォルダーの中に入っているファイルパスを全て"utf-8"型に変更しようと思ったのですが、zipフォルダーを解凍しないという条件下でどの様に変更すればいいか分かりません。
118
+
119
+
120
+
121
+ ```Python2
122
+
123
+ import zipfile
124
+
125
+ import os
126
+
127
+ import codecs
128
+
129
+
130
+
131
+ with zipfile.ZipFile(r"C:\Users//For Programming//Documents//Python Scripts//OutletHDD//RoiSet.zip") as existing_zip:
132
+
133
+ lis = existing_zip.namelist()
134
+
135
+
136
+
137
+ for i in lis:
138
+
139
+ fullpath = r"C://Users//For Programming//Documents//Python Scripts//OutletHDD//RoiSet.zip" + "//" + i
140
+
141
+ fullpath_utf8 = fullpath.decode("utf-8")
142
+
143
+ os.rename(fullpath, fullpath_utf8)
144
+
145
+
146
+
147
+ ```
148
+
149
+ このコードではこの様なエラーコードが出てしまいました。zipファイルの中を普通のtextファイルに変えた場合も、同様のエラーが出たので、深く調べきれていませんが、恐らくzipファイル内のファイルをrenameした時のエラーだと思います。
150
+
151
+ ```
152
+
153
+ OSError: (0, "Couldn't rename file")
154
+
155
+ ```
156
+
157
+ zipフォルダ内のファイルの文字コード/パスの変更はどの様に変更すればいいでしょうか?
158
+
159
+
160
+
161
+ 参考にしたサイト
162
+
163
+ https://qiita.com/HidKamiya/items/c164a6ce07820f65c501

2

追記

2020/12/17 06:59

投稿

Savanof
Savanof

スコア33

test CHANGED
File without changes
test CHANGED
@@ -61,3 +61,17 @@
61
61
  2.7.2 (v2.7.2:925a3cc3b49d, Mar 21 2020, 10:12:24)
62
62
 
63
63
  [Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)]
64
+
65
+
66
+
67
+ ### 追記
68
+
69
+ path周りの環境が完全にぶっ壊れてる事を疑って、shuntil系のcopyやmoveを試してみたのですが問題無く動きました。
70
+
71
+
72
+
73
+ 今回、解凍しようとしていたzipファイルの中身はroiファイル(.roi)という特殊なファイル形式なのですが、他のファイル形式(例えばtxt)では問題無く解凍する事ができました。
74
+
75
+
76
+
77
+ 恐らくPythonの問題ではなく、ImageJ側の問題の方が強いです。

1

環境の追加

2020/12/17 03:27

投稿

Savanof
Savanof

スコア33

test CHANGED
File without changes
test CHANGED
@@ -54,6 +54,10 @@
54
54
 
55
55
  ### 補足情報(FW/ツールのバージョンなど)
56
56
 
57
+ windows10 64bit
58
+
59
+
60
+
57
61
  2.7.2 (v2.7.2:925a3cc3b49d, Mar 21 2020, 10:12:24)
58
62
 
59
63
  [Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)]