Python os.walk() 不适用于路径中的波浪号 ~

Python os.walk() does not work with tilde ~ in path

我正在尝试对目录和子目录中的文件进行计数,它将用于我之前不知道的许多用户,因此我想在路径中使用“~”代字号。但是当我执行以下操作时 python returns 什么都没有:

import os 

for root, dirs, files in os.walk("~/direcotry/sub_directory", topdown=True):
    for name in dirs:
        print(os.path.join(root, name))

    total += len(files)

print(f"Total number of files in directory is:{total}")

使用上面的回复代码现在是这样的:

import os 

exapnded_dir = os.path.expanduser('~/direcotry/sub_directory')
for root, dirs, files in os.walk(exapnded_dir, topdown=True):
    for name in dirs:
        print(os.path.join(root, name))

    total += len(files)

print(f"Total number of files in directory is:{total}")