0

私のプログラムは、作成したパスを見つけることができません。プログラムは、ダウンロード フォルダー内のファイルを並べ替えるためのものです。新しいタイプのファイルが見つかった場合は、そのファイル タイプのフォルダを作成する必要があります。

import os

FileList = os.listdir("/sdcard/Download/")
for File in FileList:
    #print File
    extension = ''.join(os.path.splitext(File)[1])
    ext = extension.strip('.')
    if os.path.exists("/mnt/external_sd/Download/" + ext):
        Data = open("/sdcard/Download/" + File, "r").read()
        file("/mnt/external_sd/" + ext + "/" + File, "w").write(Data)
    elif os.path.exists("/mnt/external_sd/Download/" + ext) != True:
        os.makedirs("/mnt/external_sd/Download/" + ext)
        Data = open("/sdcard/Download/" + File, "r").read()
        file("/mnt/external_sd/" + ext + "/" + File, "w").write(Data)
4

1 に答える 1

3

ディレクトリを作成します

"/mnt/external_sd/Download/" + ext

しかし、あなたはに書き込もうとしています

"/mnt/external_sd/" + ext + "/" + File

Downloadそのパスにフォルダーをドロップしました。最後の行を次のように変更します。

file("/mnt/external_sd/Download/" + ext + "/" + File, "w").write(Data)

if elseちなみに、ステートメントから共有行を取り出して、shutil.copyファイル全体を読み込んでから再度書き出す代わりに使用することで、最後の 7 行を書き出す方が少し短く明確になります。

import shutil
if not os.path.exists("/mnt/external_sd/Download/" + ext):
    os.makedirs("/mnt/external_sd/Download/" + ext)
shutil.copy("/sdcard/Download/" + File, "/mnt/external_sd/Download/" + ext + "/" + File)

(shutil特にファイルが大きい場合は、通常、使用も高速になり、メモリの使用量も少なくなります)。

于 2013-08-18T08:48:29.880 に答える