wiki:Python/Snippet/システム

Version 3 (modified by nakiki, 13 years ago) (diff)

--

システム

スレッドを作る

import threading
import time

def process():
  while True:
    print 'x1'
    time.sleep(3)

th = threading.Thread(None, process, None)
th.setDaemon(True)
th.start()

while True:
  print 'x0'
  time.sleep(3)

外部コマンドの実行

import os

result = os.system('ls -al')
print result

コマンド実行の出力の表示

import popen2

(child_stdout, child_stdin, child_stderr) = popen2.popen3('ls -al')
print child_stdout.read()

環境変数の表示

import os

for env in os.environ:
  print '%s=%s' % (env, os.environ[env])

シグナルハンドラ

import signal
import sys
import time

def handler(signum, frame):
  print 'signal %s' % signum
  sys.exit(signum)

signal.signal(signal.SIGTERM, handler)
while True:
  time.sleep(3)
  • メインスレッドでハンドラを設定するとファイルのクローズ処理などきちんとしてくれる。
  • 設定しないと、保存せずに終わったりする。ので便利。