2011-02-01 87 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'])