このスクリプトは、常に不明を返しています。私のルートフォルダ内のファイルやディレクトリが存在している場合でも?

セージカンワル:
for item in os.listdir("/root"):
    if os.path.isfile(item):
        print(item + "is a file")
    elif os.path.isdir(item):
        print(item + "is a dir")
    else:
        print("Unknown")
デミアン・ウルフ:

よるとforループ、あなたはからすべてのファイルをチェックしようとしている/ルートディレクトリではなく、現在の1からを。しかし、os.listdir("/root)リターン/ルートディレクトリにあるファイルのファイル名のみ彼らの完全なパスをせずに(例えば「my_file.txt」の代わりに「/root/my_file.txtに」)。そして、os.path.isfile(...)そしてos.path.isdir(...)必要フルパスその引数としてを。だから、あなたが呼び出すときos.path.isfile(item)os.path.isdir(item)アイテムが存在するかどうかをチェックして、現在のディレクトリ、ない/ rootディレクトリを

使用しos.path.join(path, *paths)、あなたの項目のための完全なパスを取得するために保管しfull_path、ループ内の変数とし、それを投げるos.path.isdir(...)し、os.path.isfile(...)代わりにitem
次に例を示します。

for item in os.listdir("/root"):
    full_path = os.path.join("/root", item)
    if os.path.isfile(full_path):
        print(item + " is a file")
    elif os.path.isdir(full_path):
        print(item + " is a dir")
    else:
        print("Unknown")

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=12936&siteId=1