【问题标题】:python variable in the function call函数调用中的python变量
【发布时间】:2011-02-01 07:39:12
【问题描述】:

我正在尝试使用 python 在 linux 中创建一个目录/文件夹。我会得到日期时间并制作一个文件夹。

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??

【问题讨论】:

标签: python string function datetime


【解决方案1】:

使用字符串格式将 var a 添加到字符串中:

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

【讨论】:

    【解决方案2】:

    使用python自己制作目录的方式:

    os.mkdir(a)
    

    【讨论】:

    • 但是当我在像 os.system('') 这样的函数中使用这个 mkdir 时。
    【解决方案3】:

    您确定要使用所有这些冒号和空格来命名您的目录'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 输出中双击其名称等),您的生活会更轻松

    【讨论】:

    • 是的 eumiro,我在上面寻找类似的东西!备份的小任务,我对python不太了解,谢谢!!
    【解决方案4】:

    您应该使用os.system。如果您必须调用外部程序,请使用subprocess

    也就是说,没有理由打电话给mkdir。使用 stdlib 函数os.mkdir,它可以满足您的需求。建议尽可能使用 stdlib。您的代码不仅可移植,而且更易于维护和阅读。

    如果你坚持调用外部进程:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2013-07-16
      • 2019-10-05
      相关资源
      最近更新 更多