セージカンワル:
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")