首先,我知道有更好的方法來做到這一點。我試圖在與各種UNIX命令交互時學習subprocess.Popen()的最基本行爲。我在做目錄導航時遇到了一些問題,我不知道它是什麼。我將iPython作爲我的REPL運行,所以ls命令顯示當前工作目錄中的文件。需要使用python子進程模塊導航Linux目錄的幫助
有人請告訴我我做錯了什麼!
In [61]: newtree_dirs
Out[61]:
['10dir',
'1dir',
'2dir',
'3dir',
'4dir',
'5dir',
'6dir',
'7dir',
'8dir',
'9dir']
In [62]: ls
10dir/ 1dir/ 2dir/ 3dir/ 4dir/ 5dir/ 6dir/ 7dir/ 8dir/ 9dir/
In [63]: for folder in newtree_dirs:
...: p1 = sub.Popen(['cd', './{}'.format(folder)])
...: p1.communicate()
...: foo = (i for i in xrange(10))
...: for num in foo:
...: p2 = sub.Popen(['touch', '{}file'.format(num)])
...: p2.communicate()
...: p3 = sub.Popen(['cd', '..'])
...: p3.communicate()
...:
...:
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-63-bb6e77faf97b> in <module>()
1 for folder in newtree_dirs:
----> 2 p1 = sub.Popen(['cd', u'./{}'.format(folder)])
3 p1.communicate()
4 bar = (i for i in xrange(10))
5 for num in bar:
該異常後,進一步的異常下降到子模塊的錯誤處理缺少目錄。我的cwd中的目錄名稱是相同的,我不知道發生了什麼。
究竟是什麼錯誤信息?試着對單個Popen(cd)命令進行硬編碼,看看它是否能自行工作,而不是循環。 –
您收到的錯誤是否如下所示:「OSError:[Errno 2]沒有這樣的**文件**或目錄」? –