2011-02-01 86 views
0

我試圖在使用python的linux中創建一個目錄/文件夾。我會得到日期時間並創建一個文件夾。函數調用中的python變量

In [65]: d = datetime.datetime.now() 

In [66]: a = 'date :' + str(d) 

In [67]: a 
Out[67]: 'date :2011-02-01 13:05:58.642704' 

In [68]: os.system('mkdir a') 

我該如何在系統命令中傳遞變量a?

+1

您不應該這樣做。 http://docs.python.org/library/subprocess.html – 2011-02-01 07:41:13

+0

`os.system(''.join(['mkdir',a])` – martineau 2011-02-01 08:04:59

+0

`os.system('mkdir {}'。format(a ))` – martineau 2011-02-01 08:05:45

回答

2

您確定要與所有這些冒號和空格命名的目錄'date :2011-02-01 13:05:58.642704'?有一種簡單的方法可以用不同的格式來格式化日期,這將使字符串操作更容易。

例如:

d = datetime.datetime.now() 

a = d.strftime('date_%Y%m%d_%H%M%S_%f') 
os.mkdir(a) 

,這將創建一個名爲date_20110201_130558_642704(更多有關格式選項here)目錄。如果您在shell中操作此目錄(雙擊ls輸出中的名稱等),您的生活將會變得更加簡單。

3

使用字符串格式化的VAR a添加到字符串:

os.system('mkdir %s' % a) 
3

使用Python自己製作目錄的方式:

os.mkdir(a) 
1

你應該使用os.system。如果您必須調用外部程序,請使用subprocess

這就是說,沒有理由打電話mkdir。使用stdlib函數os.mkdir,這就是你想要的。建議儘可能使用stdlib。您的代碼不僅便於攜帶,而且易於維護和閱讀。

如果硬要調用外部程序:

>>> import subprocess 
>>> subprocess.call(['mkdir', 'foo_bar'])