【发布时间】:2014-05-05 20:11:38
【问题描述】:
我编写了一个程序,其主要目的是不断地向用户询问数据文件名,然后绘制这些文件的图形。但是,根据设计,这些文件存在于各种目录中。我认为能够以标准的cd 样式导航会很好,这样用户就可以轻松地进入所述目录并选择他/她想要的任何文件。
我是 python 新手(现在正在使用 2.7),所以也许我实现的很糟糕,但下面是我现在的代码:
import os
...
userinput = raw_input('What would you like to do: ').lower()
if userinput.startswith('cd '):
try:
newdir = userinput.split('cd ')[1]
os.chdir(newdir)
print(os.getcwd()+'\n')
except:
print('Not a valid directory.\n')
到目前为止,这实际上对我的测试用例很有效(在 Windows 环境中运行,无论好坏),唯一的例外是用户输入类似于cd ...。只要有除两个以外的任何数量的句点,就不会引发错误(我在没有 try/except 的情况下完成了此操作),并且程序保留在当前目录中(它打印出它已经存在的位置,而不是继续到声明的except 部分)。
总的来说,这没什么大不了的,因为它只是为了防止出现拼写错误,但我只是想知道这里发生了什么。谢谢!
【问题讨论】:
-
Windows 可能会以某种特殊的方式解释文件名中的
.(请记住,它是文件名/扩展名分隔符)。在 Linux 上,我收到了预期的错误消息。尝试os.path.splitext('...')获得线索。
标签: python python-2.7 cd chdir