2017-12-24 14 views
-1

私は新しいpythonラーナーです。 私はこの単純なコードこれはreasultpyserialを使用してアクティブなシリアルポートを一覧表示しているときの例外

C:\Python27\python.exe C:/Users/tc34669/PycharmProjects/untitled/open_serial_port.py 
COM1     
COM3     
2 ports found 
Traceback (most recent call last): 
File "C:/Users/tc34669/PycharmProjects/untitled/open_serial_port.py", line 2, in <module> 
ports = list(port_list.main()) 
TypeError: 'NoneType' object is not iterable 

誰かがここにある私は、この例外TypeErrorことなく、これらのポートを一覧表示することができます方法を知っている

import serial.tools.list_ports as port_list 
ports = list(port_list.main()) 
for p in ports: 

    print (p) 

と私のアクティブなシリアルポートの一覧を表示しようとしていますか?

おかげ

+0

(と、それはあなたが名前を変更することを決めたいくつかの理由でその関数の名前からも明らかである) 'list_ports'だけで一覧表示されます。代わりにcomports()機能を使用してみてくださいポートを印刷し、 'None'を返します。ドキュメントを読んで、実際にポートリストを返す関数を探します。 – DeepSpace

答えて

0

documentation of pySerialmain()によると、実際にあなたがすべてのポートの情報を取得するために使用できる文書化機能ではありません。 =(あなたが提供される出力に見ることができるように

from serial.tools import list_ports 
for p in list_ports.comports(): 
    print(p) 
+0

私はこの機能を既に試しましたが、得られた出力が長すぎました(例えば、COM1 - 通信ポート(COM1))。これらのポートを、ポート番号のみを含む変数に変換したい(たとえば、COM1)。これが私が 'main'関数で試した理由です。出力は必要ですが、このタイプエラーは私をブロックします。異なる方法について知っていれば、それはすばらしいことになります。 – GP1308

関連する問題