いくつかのファイル操作タスクを処理するのに役立つプログラムがあります。次のように、操作するファイルのリストを作成します。
useful_files = [file for file in os.listdir(self.operatingDirs[0])
if re.match(this_task_re, file)]
次に、それらを処理します。ときどき、ユーザーに何をしているかを伝えます。
for file_name in useful_files:
pub.sendMessage("LOG MESSAGE", msg = "Checking folders for %s" % file_name)
ヨーロッパのユーザーがこのプログラムを使用すると、次のように失敗し始めます。
File "usefulfilefolder.pyc", line 310, in _DeduceDropBoxFolders
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 14: ordinal not in range(128)
sendMessage
コール との回線で。
os.listdirs
エラーは、取得したファイル名をメッセージ文字列に挿入しようとしたために生成されたようです。
IE: ファイル システムから取得したファイル名を直接出力できないようです。
これは正しいです?
これにどのように対処すればよいですか?
同じファイルを参照するために他のファイルシステム操作で使用できるように、listdirs から取得した名前を保持する必要があることに注意してください....
ありがとう!
(注 - ライブラリがサポートされていないため、現時点では簡単に Python3 にアップグレードできません)
(以下のコメントで行われたポイントを明確にするために編集されました)