为什么os.chdir()在这种情况下不能更改目录



----输入

print(os.getcwd(), 'n')
print(os.listdir(), 'n')
Gui_path = '/Gui'
os.chdir(Gui_path)

----输出

C: \Users\vhass\Documents\编码项目\保险库

C: \Users\vhass\Documents\编码项目\保险库

[‘application.py’、‘crypto.py’,‘encryption.py’、‘genaccount.py’’、‘Gui’、‘Home.py’和‘icons’、‘login.py‘、‘main.py‘,‘Pics‘、‘test.py‘’、‘Usernamepass.py‘和‘pycache']

追踪(最近一次通话(:文件"C:\Users\vhass\Documents\Coding Projects\The vault\login.py",第19行,位于os.chdir(Guid_path(FileNotFoundError:[WinError 2]系统找不到指定的文件:"/Gui">

注释****这个项目中的路径不是静态的,可能会根据用户的偏好进行更改,所以我不能使用完整的路径。

问题是您提供的是完整路径,而不是相对路径。os.chdir('/Gui')正试图转到您的根目录(/(并在那里查找文件夹Gui

我认为您要做的是查找相对于当前目录的文件夹Gui。试试之类的东西

>>> import os
>>> os.getcwd()
'/Users/tyler/tmp/stackoverflow'
>>> os.listdir()
['a', 'f', 'Gui', 'c', 'd', 'e', 'b']
>>> os.chdir(os.getcwd() + '/Gui') # <- This is the important line
>>> os.getcwd()
'/Users/tyler/tmp/stackoverflow/Gui'
>>> os.listdir()
['HELLO']
>>>

看看我们是如何进行os.getcwd() + '/Gui'而不仅仅是'/Gui'的字符串联接的吗?这确保了我们在当前所在的目录中查找。

您还应该查看stdlib路径库以获得其他有用的基元,并确保您的代码能够处理奇怪的文件系统边缘情况。

相关内容

最新更新