2017-02-20 5 views
-1

私は、usbmtc経由でオシロスコープと波形ジェネレータと通信するためにPythonを使用しています。 OSErrorを無視する方法:[Errno 2] in Python、os linux、usbtmc

for x in range(0, 3): 
    dev= '/dev/usbtmc' + str(x) 
    currentUsb = usb.tmc(dev) 
    currentUsb.write("*IDN?") 
    name = currentUsb.read(300) 
    if name.find('DSO') >-1: 
     scope= usb.tmc(dev) 
     print 'scope ' 
    elif name.find('33621A') >-1: 
     waveform = usb.tmc(dev) 
     print 'waveform' 

しかし、私は接続されたデバイス usbtmc1を持っていない場合、私は次のようなエラーがあります:

だから私は、現在のデバイスを検出する機能を書いた

Traceback (most recent call last): 
    File "testKEY.py", line 28, in <module> 
    currentUsb = usb.tmc(dev) 
    File "/home/ivan/Desktop/novosound/novosound/usb.py", line 8, in __init__ 
    self.FILE = os.open(device, os.O_RDWR) 
OSError: [Errno 2] No such file or directory: '/dev/usbtmc1 

がありますエラーを無視するオプションはありますか?

+0

@SiddheshMhatreでは、パスは正しいものの、コードの最初の部分が動作しています。 だから私は何ですか: 波形とエラー –

答えて

2

組み込みのtryを使用して、Pythonのエラーを無視します。

loggingと組み合わせると、エラーを画面またはファイルに記録できます。

import logging 

for x in range(0, 3): 
    dev= '/dev/usbtmc' + str(x) 
    try: 
     currentUsb = usb.tmc(dev) 
     currentUsb.write("*IDN?") 
     name = currentUsb.read(300) 
     if name.find('DSO') >-1: 
      scope= usb.tmc(dev) 
      print 'scope ' 

     elif name.find('33621A') >-1: 
      waveform = usb.tmc(dev) 
      print 'waveform' 
    except OSError: 
     logging.info('Something is wrong') 
     pass 
+0

あなたの答えはありがとう、ちょうどあなたのコードを試してみましたが、それは動作しませんでした。しかし、あなたは私にできることを私に与えました! –

+0

ループの前に次の行にコードがクラッシュしています:currentUsb = usb.tmc(dev) –

+0

@IvanShorokhovコードをもう一度やり直してください。私はそれを修正した。 –

関連する問題