Python2 setting time error
我编写了一个在Linux中设置系统时间的函数。我写下一个代码:
1 2 3 4 5 6 7 8 9 10 | import time import subprocess def SetSystemTime(val): try: val = float(val) except ValueError: return command = 'date -s"' + time.ctime(val) + '"' subprocess.call(command) |
当我接到这个电话时:
File"crc.py", line 96, in
SetSystemTime(0)
File"crc.py", line 12, in SetSystemTime
subprocess.call(command)
File"/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File"/usr/lib/python2.7/subprocess.py", line 679, in init
errread, errwrite)
File"/usr/lib/python2.7/subprocess.py", line 1239, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
call()通常将字符串列表作为其第一个参数。如果您给它一个字符串x(如您所做的那样),那么这个字符串将被转换为以整个字符串作为第一个参数的列表。该列表的第一个元素与该列表的其余元素一起作为参数执行。因此,底层操作系统试图执行可执行文件'date-s"XXYYXXZ",但找不到它。
这与os.system()不同,后者将参数传递给一个shell,该shell通常在空格处拆分它得到的字符串,然后执行第一个被拆分的元素。
尝试:
1 2 | command = ['date', '-s"' + time.ctime(val) + '"'] subprocess.call(command) |
最后两行。