2012-03-29 6 views
0

は、私は、Linuxでシステム時刻を設定する関数を記述します。私が得ることの呼び出しでPython2設定時エラー

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

答えて

1

subprocess.call()は通常、最初の引数として文字列のリストを受け取り、私は次のコードを記述します。文字列Xを渡すと(そのように)、その文字列全体が最初の引数としてリストに変換されます。 そのリストの最初の要素は、残りのリストと共に引数として実行されます。 だから、基本となるOSは、「日付-s 『XXYYXXZ』」実行可能ファイルを実行しようとし、それを見つけることができません。ほとんどの場合、それは、スペースで取得し、最初の要素がオフに分割実行文字列を分割シェルにパラメータを渡す

これはos.system異なっています()。

試してみてください。最後の2行として

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