对于现有的文件系统对象,os.path.isfile 总是与 os.path.isdir 相反吗?
Is os.path.isfile always the opposite of os.path.isdir for an existing file system object?
我要用 os.listdir
列出目录中的所有文件和目录,并可靠地区分它们。是否可以只使用 os.path.isdir
并认为它是一个文件,如果它 returns false 或者我应该检查 os.path.isfile
吗?是否存在 os.path.exists(path) and os.path.isdir(path) == os.path.isfile(path)
恰好为真的情况?
os.path.isdir 和 os.path.isfile 都可以! os.path.exists(path) 和 os.path.isdir(path) == os.path.isfile(path) 总是 False
只要使用 os.path.isdir
就应该没问题。这仅查找输入的路径是否为目录。否则,可以假设它是一个文件。我已经测试过,看看是否有 whenos.path.exists(path) and os.path.isdir(path) == os.path.isfile(path)
的情况,这是结果。
print(os.path.isdir("C:\Users\Kobe Thompson\Desktop\Test\"))
print(os.path.exists("C:\Users\Kobe Thompson\Desktop\Test\"))
print(os.path.isfile("C:\Users\Kobe Thompson\Desktop\Test\"))
True, True, False
print(os.path.isdir("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.exists("C:\Users\Kobe Thompson\Desktop\Test\"))
print(os.path.isfile("C:\Users\Kobe Thompson\Desktop\Test\"))
False, True, False
print(os.path.isdir("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.exists("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.isfile("C:\Users\Kobe Thompson\Desktop\Test\"))
False, False, False
print(os.path.isdir("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.exists("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.isfile("C:\Users\Kobe Thompson\Desktop\Test\test"))
假,假,假,
如您所见,有些情况下 os.path.isdir 和 os.path.exists 都等于 os.path.isfile
os.path.isdir(path) == os.path.isfile(path)
不应该存在于我所知道的所有磁盘文件系统中,因为这应该意味着同一个对象既是目录又是文件。具体来说EXT4,我的理解是inode既可以是目录也可以是文件。
然而,这两个函数 are not defined as mutually exclusive 需要假设这在所有可能的文件系统中都是正确的,包括未来的文件系统,并且很难预测。
我要用 os.listdir
列出目录中的所有文件和目录,并可靠地区分它们。是否可以只使用 os.path.isdir
并认为它是一个文件,如果它 returns false 或者我应该检查 os.path.isfile
吗?是否存在 os.path.exists(path) and os.path.isdir(path) == os.path.isfile(path)
恰好为真的情况?
os.path.isdir 和 os.path.isfile 都可以! os.path.exists(path) 和 os.path.isdir(path) == os.path.isfile(path) 总是 False
只要使用 os.path.isdir
就应该没问题。这仅查找输入的路径是否为目录。否则,可以假设它是一个文件。我已经测试过,看看是否有 whenos.path.exists(path) and os.path.isdir(path) == os.path.isfile(path)
的情况,这是结果。
print(os.path.isdir("C:\Users\Kobe Thompson\Desktop\Test\"))
print(os.path.exists("C:\Users\Kobe Thompson\Desktop\Test\"))
print(os.path.isfile("C:\Users\Kobe Thompson\Desktop\Test\"))
True, True, False
print(os.path.isdir("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.exists("C:\Users\Kobe Thompson\Desktop\Test\"))
print(os.path.isfile("C:\Users\Kobe Thompson\Desktop\Test\"))
False, True, False
print(os.path.isdir("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.exists("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.isfile("C:\Users\Kobe Thompson\Desktop\Test\"))
False, False, False
print(os.path.isdir("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.exists("C:\Users\Kobe Thompson\Desktop\Test\test"))
print(os.path.isfile("C:\Users\Kobe Thompson\Desktop\Test\test"))
假,假,假,
如您所见,有些情况下 os.path.isdir 和 os.path.exists 都等于 os.path.isfile
os.path.isdir(path) == os.path.isfile(path)
不应该存在于我所知道的所有磁盘文件系统中,因为这应该意味着同一个对象既是目录又是文件。具体来说EXT4,我的理解是inode既可以是目录也可以是文件。
然而,这两个函数 are not defined as mutually exclusive 需要假设这在所有可能的文件系统中都是正确的,包括未来的文件系统,并且很难预测。