Python:使用用户输入作为目录名称列出目录不起作用

发布于 2025-01-08 19:56:58 字数 361 浏览 0 评论 0原文

我一整天都在努力解决这个问题。我只想列出用户指定的目录中的文件。以下是我的代码和回溯:

>>> os.listdir(r'{}'.format(input('directory:')))

directory:C:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WindowsError: [Error 123] The filename, directory name, or volume label syntax i
s incorrect: 'C:\r\\*.*'

任何帮助将不胜感激,谢谢!

I've been trying to solve this problem all day. I just want to list the files within a directory that a user will specify. Below is my code and traceback:

>>> os.listdir(r'{}'.format(input('directory:')))

directory:C:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WindowsError: [Error 123] The filename, directory name, or volume label syntax i
s incorrect: 'C:\r\\*.*'

Any help would be greatly appreciated, thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

野心澎湃 2025-01-15 19:56:58

您需要以字符串格式给出C:

它对我来说工作正常

>>> os.listdir(r'{0}'.format(input('directory:')))
directory:"C:\Users"
['All Users', 'Default', 'Default User', 'desktop.ini', 'Public', 'RanRag']
>>>

,或者尝试使用 raw_input

>>> os.listdir(r'{0}'.format(raw_input('directory:')))
directory:C:\Users
['All Users', 'Default', 'Default User', 'desktop.ini', 'Public', 'RanRag']

raw_input 函数从输入中读取一行,并将其转换为字符串
(删除尾随换行符),并返回

如果您使用的是 python3,则 raw_input 将被 input 替换。

>>> os.listdir(r'{0}'.format(input('directory:')))
directory:C:\Users
['All Users', 'Default', 'Default User', 'desktop.ini', 'Public', 'RanRag']
>>>

You need to give C: in string format.

Its working fine for me

>>> os.listdir(r'{0}'.format(input('directory:')))
directory:"C:\Users"
['All Users', 'Default', 'Default User', 'desktop.ini', 'Public', 'RanRag']
>>>

or try using raw_input.

>>> os.listdir(r'{0}'.format(raw_input('directory:')))
directory:C:\Users
['All Users', 'Default', 'Default User', 'desktop.ini', 'Public', 'RanRag']

The raw_input function reads a line from input, converts it to a string
(stripping a trailing newline), and returns that

If you are using python3 than raw_input is replaced by input.

>>> os.listdir(r'{0}'.format(input('directory:')))
directory:C:\Users
['All Users', 'Default', 'Default User', 'desktop.ini', 'Public', 'RanRag']
>>>
顾铮苏瑾 2025-01-15 19:56:58

我猜错误在于使用 input 而不是 raw_input

如果您使用 input python 会尝试解析用户输入的文本。在您的情况下,您只想获得用户输入的字符串,因此您要么必须在字符串中添加引号(就像 RanRag 在他的答案中所做的那样),要么您可以简单地使用 raw_input 因为它返回用户以字符串形式输入的字符。

I guess that the error lies in the use of input instead of raw_input.

If you use input python tries to parse the text the user entered. In your case you just want to have the string the user enters, so you either have to add quotes to the string (like RanRag did in his answer), or you could simply use raw_input as it returns the characters the user typed as a string.

亣腦蒛氧 2025-01-15 19:56:58

正如兰拉格所说。但由于您已经从 raw_input 获取了一个字符串,因此您可以这样做:

os.listdir(raw_input('directory: '))

As RanRag said. But since you'll already get a string from raw_input you can do it like this:

os.listdir(raw_input('directory: '))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文