2
我想在我的python腳本中做一個目錄結構的遞歸副本。當我通過bash命令行做副本:爲什麼python的遞歸副本與命令行不一樣?
[email protected]:~/head$ cp -rf ./applications/app_template/ ./applications/my_dir
我得到預期的結果:
[email protected]:~/head$ tree ./applications/my_dir/
./applications/my_dir/
├── cdl
│ ├── include
│ ├── Makefile
│ ...
│ └── other
├── cds
│ ├── include
...
然而,當我試着通過Python腳本做同樣的事情:
print "./applications/"+tar_dir
os.system("cp -rf ./applications/app_template/ ./applications/"+tar_dir)
我得到:
[email protected]:~/head$ tree ./applications/my_dir/
./applications/my_dir/
└── app_template <--- why did it copy that too?
├── cdl
│ ├── include
│ ├── Makefile
│ ...
│ └── other
├── cds
│ ├── include
...
我的python腳本的打印正顯示出我,我使用的是同一個目標:
./applications/my_dir
而且你可以看到我的命令的其餘部分是相同的。那麼,爲什麼我在使用os.system()
時得到的輸出與我直接從shell運行命令時的輸出不同?
也許'os.system'使用的是與您使用的shell不同的shell。也許這個問題可以通過使用'subprocess'來解決,你可以在其中指定使用哪個shell – inspectorG4dget
@ inspectorG4dget - 一個有趣的想法...你知道我該如何檢查os.system調用到底在做什麼? – Mike
嘗試os.system(「echo $ 0」) –