2017-06-15 21 views
0

當我第一次使用os.chdir()它的作品,然後當我嘗試再次使用它不,並給我一個錯誤。 已創建以下文件。編輯和123python os.chdir()不能使用多次?

import os 
os.mkdir('ed') 
os.mkdir('123') 

現在我想改變兩者之間。

import os 
os.chdir('ed') 

os.chdir('123') 

Traceback (most recent call last): 
File "<pyshell#8>", line 1, in <module> 
os.chdir('123') 
FileNotFoundError: [WinError 2] The system cannot find the file specified: '123' 

爲什麼不讓它在兩個文件之間切換?

+0

它不是兩個文件它是兩個目錄。在'ed /'裏面時你不能導航到'123 /';你需要啓動然後回來。 –

回答

2

想想調用os.chdir(some_path)一樣從終端做cd some_path的。它認爲提供的路徑是相對的,除非明確給出絕對路徑(從Windows上的驅動器盤符開始或在Linux上爲/)。

for os.chdir('ed') ; os.chdir('123') to work 123 dir必須是ed的子目錄。 你的情況不是這樣,所以你要麼需要:

  1. 提供絕對路徑
  2. 回到一級調用os.chdir('123')前:

    os.chdir('..') 
    os.chdir('123') 
    

    甚至

    os.chdir('..{}123'.format(os.path.sep)) 
    

    請注意使用os.path.sep爲了避免使用操作系統特定的路徑分隔符TOR。

+0

在這裏真的需要使用'os.path.sep'嗎?我覺得'/'總是有效,即使在Windows上也是如此。 –

+0

@tobias_k使用'/'有人會抱怨,使用'os.path.sep'和別人會''''''確實應該在Windows上工作 – DeepSpace

2

創建ed和123文件夾後,這兩個文件夾處於同一級別。

os.chdir('ed') 

上面的一行會將您指向ed文件夾。

os.chdir('../123') 

您需要使用..導航到父文件夾,然後導航到123文件夾。

相關問題