python无法找到它刚才制作的文件

时间:2013-08-18 08:42:20

标签: python file path

我的程序找不到它刚刚创建的路径,该程序用于对下载文件夹中的文件进行排序。 如果找到新类型的文件,它应该为该文件类型创建一个文件夹。

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)

1 个答案:

答案 0 :(得分: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代替读取,可以更短更清晰地写下最后七行。整个文件然后再写出来:

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通常也会更快并且使用更少的内存,特别是如果您的文件很大的话。)