关于linux:如何在Python中将用户输入转换为文件路径

How to convert users input to file path in Python

我目前正在尝试获取文件路径(假设~/hello_world/)作为用户输入并列出此目录中的所有文件。如果我像sys.argv一样通过~/hello ou world,我可以做同样的事情。但是,如果我把它作为输入,我似乎无法使它工作。我正在尝试从任何目录操作代码,用户输入的文件路径将来自/home/ubunut/…。以下是我的工作代码sys.argv:

此代码目前仅用于基于Unix的操作系统。

1
2
3
4
5
6
if len(sys.argv) == 2:
    path = sys.argv[1]

files = os.listdir(path)
for name in files:
    print(name)

下面是我要处理的代码:

1
2
3
4
path = input("file_path:")
files = os.listdir(path)
for name in files:
    print(name)

这是由于以下错误而崩溃的情况:

1
2
3
4
Traceback (most recent call last):
  File"test.py", line 14, in <module>
    files = os.listdir(path)
FileNotFoundError: [Errno 2] No such file or directory: '~/hello_world/'

事先谢谢。


你需要像回答这个问题那样扩展~

以下对我有用

1
2
3
4
5
6
import os

path = input("enter filepath:")

for f in os.listdir(os.path.expanduser(path)):
    print(f)