什么是更加pythonic的方式来做到这一点?

时间:2014-02-14 16:55:13

标签: python python-2.7 subprocess

我正在尝试使用框中的subprocess.calldate --set=来手动更改Linux机器上的日期/时间。我的问题是试图找到更清晰/更pythonic的格式化所有内容的方式进入call

我这样做的原因是因为date命令需要--set=后跟一个字符串,我无法找到在{{1}内以适当格式执行此操作的方法}。

我理所当然地知道我应该使用subprocess.call但不幸的是,这是我现在的要求。非常感谢任何帮助。

ntpd

2 个答案:

答案 0 :(得分:2)

使用字符串格式:

datetime = '--set={}-{}-{} {}:{}:{}'.format(year, month, day, hour, minute, second)

答案 1 :(得分:0)

使用可变数量的参数(由于您无法看到参数名称,因此更短但可读性更低):

def set_system_time(*a):
    datetime = '--set=%d-%d-%d %02d:%02d:%02d' % a

使用固定数量的参数:

def set_system_time(year, month, day, hour, minute, second):
    datetime = '--set=%(year)d-%(month)d-%(day)d %(hour)02d:%(minute)02d:%(second)02d' % locals()