Python2设置时间错误

时间:2012-03-29 09:31:47

标签: python-2.7

我编写了一个在linux中设置系统时间的函数。我写下一段代码:

import time
import subprocess

def SetSystemTime(val):        
    try:
        val = float(val)
    except ValueError:
        return
    command = 'date -s"' + time.ctime(val) + '"'
    subprocess.call(command)

在调用我得到的时候:

  

文件“crc.py”,第96行,in       SetSystemTime(0)     在SetSystemTime中输入“crc.py”,第12行       subprocess.call(命令)     在调用中文件“/usr/lib/python2.7/subprocess.py”,第493行       返回Popen(* popenargs,** kwargs).wait()     文件“/usr/lib/python2.7/subprocess.py”,第679行, init       errread,errwrite)     文件“/usr/lib/python2.7/subprocess.py”,第1239行,在_execute_child中       提出child_exception   OSError:[Errno 2]没有这样的文件或目录

1 个答案:

答案 0 :(得分:1)

subprocess.call()通常将字符串列表作为其第一个参数。如果你把它交给一个字符串X(正如你所做的那样),那一个将被转换为list,整个字符串作为它的第一个参数。 该列表的第一个元素以该列表的其余部分作为参数执行。 因此底层操作系统尝试执行可执行文件'date -s“XXYYXXZ”'并且无法找到它。

这与os.system()不同,os.system()将参数传递给shell,shell通常会拆分它在空格处获得的字符串,然后执行拆分的第一个元素。

尝试:

command = ['date', '-s"' + time.ctime(val) + '"']
subprocess.call(command)

作为最后两行。