当路径不是当前目录时,os.path.isdir()无法识别目录

时间:2018-08-06 05:53:55

标签: python directory directory-structure

我有一个目录列表(purplebluered)在一个名为colors的主目录中可以识别。

当我从colors中运行此脚本时:

path_to_folders = './'
folders = [f for f in os.listdir(path_to_folders) if os.path.isdir(f)]
print(folders)

我得到了文件夹列表:

['purple', 'blue', 'red']

当我设置'path_to_folders = '../colors'并从colors目录之外运行脚本时,包含在其中的目录即使被读为f也不会被识别为目录。

文件夹列表为空:[],但打印每个f会得到:

purple
blue
red

怎么可能?

2 个答案:

答案 0 :(得分:2)

if(isset($_FILES['images'])) { foreach($_FILES['images']['tmp_name'] as $key => $tmp_name ) { $images= $_FILES['images']['name'][$key]; $file_loc = $_FILES['images']['tmp_name'][$key]; $file_size = $_FILES['images']['size'][$key]; $file_type = $_FILES['images']['type'][$key]; $folder="uploads/"; move_uploaded_file($file_loc,$folder.$images); } //file uploading code ends //insert statement starts $stmt = $this->conn->prepare("INSERT INTO cropfeedback(adminCropId, feedback, comments, finishedDate, images) VALUES(?, ?, ?, ?, ?)"); $stmt->bind_param("issss", $adminCropId, $feedback, $comments, $finishedDate, $images); $result = $stmt->execute(); $stmt->close(); if ($result) { return true; } return false; } 仅返回文件名,不包含路径名,而os.path.listdir()需要完整的路径名,因此您应使用os.path.isdir()在文件名前添加路径名:< / p>

os.path.join()

答案 1 :(得分:1)

开头没有../,这些文件夹将被视为位于CWD中。 CWD中不存在此类文件夹。调整代码,以便:

path_to_folders = './'
folders = [f for f in os.listdir(path_to_folders) if os.path.isdir(path_to_folders . f)]
print(folders)