Linux 如何在Python中将用户输入转换为文件路径

Linux 如何在Python中将用户输入转换为文件路径,linux,python-3.x,file,filesystems,Linux,Python 3.x,File,Filesystems,我目前正在尝试获取文件路径(假设~/hello\u world/)作为用户输入,并列出此目录中的所有文件。如果我将~/hello_world作为sys.argv传递,我可以做完全相同的事情。但是,如果我将它作为输入,我似乎无法使它工作。我试图从任何目录和用户输入的文件路径将从/home/ubunut/…工作的代码。。。 以下是我的工作代码sys.argv: 此代码目前仅适用于基于unix的操作系统 if len(sys.argv) == 2: path = sys.argv[1] fi

我目前正在尝试获取文件路径(假设~/hello\u world/)作为用户输入,并列出此目录中的所有文件。如果我将~/hello_world作为sys.argv传递,我可以做完全相同的事情。但是,如果我将它作为输入,我似乎无法使它工作。我试图从任何目录和用户输入的文件路径将从/home/ubunut/…工作的代码。。。 以下是我的工作代码sys.argv:

此代码目前仅适用于基于unix的操作系统

if len(sys.argv) == 2:
    path = sys.argv[1]

files = os.listdir(path)
for name in files:
    print(name)
以下是我尝试使用的代码:

path = input("file_path: ")
files = os.listdir(path)
for name in files:
    print(name)
这是当它崩溃时出现以下错误:

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/'
回溯(最近一次呼叫最后一次):
文件“test.py”,第14行,在
files=os.listdir(路径)
FileNotFoundError:[Errno 2]没有这样的文件或目录:“~/hello\u world/”

提前感谢。

您需要像回答这个问题一样展开
~

以下几点对我有用

import os

path = input("enter filepath: ")

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

你的代码在我的机器上运行。你确定你要找的目录存在吗?哦。我正在尝试处理任何目录。在代码的第一部分中,您将path变量声明放在if中,但在if块之外使用它,因此变量可能无法初始化。事实上,如果不插入任何参数,代码将无法运行。对于代码的第一部分,您必须运行类似于以下内容的python3 script_name.py~/backup/因为它从sys arg获取参数。我想我已经说清楚了,没问题!很乐意帮忙!