我一直在努力解决这个问题。我只想列出用户将指定的目录中的文件。下面是我的代码和追溯:
>>> 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\\*.*'
非常感谢任何帮助,谢谢!
答案 0 :(得分:3)
您需要以字符串格式提供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']
>>>
答案 1 :(得分:2)
如果使用input
python尝试来解析用户输入的文本。在你的情况下你只想拥有用户输入的字符串,所以你要么必须在字符串中添加引号(就像RanRag在他的答案中所做的那样),或者你可以简单地使用raw_input
,因为它返回用户的字符键入字符串。
答案 2 :(得分:0)
正如RanRag所说。但是既然你已经从raw_input获得了一个字符串,你就可以这样做:
os.listdir(raw_input('directory: '))