印刷関数の結果python2は正しいが、python3は間違っている

ルナ

私のプログラムはsubprocessoptparseモジュールを使用して端末出力を読み取り、印刷します。

Python 2(2.7.14+)の結果は問題ありませんが、Python 3(3.6.7)では1行であり、読み取ることができません。

リストから文字列に変換しようとしました

print(str(ifconfig_result))

ループしてみました

for result in ifconfig_result :
     print(result)

無駄に。

これは私のコードです

import subprocess    
import optparse

  def get_arguments():     
      parser = optparse.OptionParser()
      parser.add_option("-i","--interface",dest="interface",help="interface to change its MAC address")
      parser.add_option("-m","--mac",dest="new_mac",help="new MAC address")
      (options,arguments) = parser.parse_args() 
      if not options.interface:
             parser.error("[-] Plase specify an interface, use --help for more info.")
      elif not options.new_mac:
           parser.error("[-] Plase specify a mac, use --help for more info.")
      return options 
  def change_mac(interface, new_mac):
      print("[+] Changing MAC address for " + interface + " to "+ new_mac)
      subprocess.run("ifconfig "+interface+" down", shell=True)
      subprocess.run("ifconfig "+interface+" hw ether "+new_mac, shell=True)
      subprocess.run("ifconfig "+interface+" up",shell=True)
  options= get_arguments()

  ifconfig_result = subprocess.check_output(["ifconfig", options.interface])
  print(ifconfig_result)

Python2の出力:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.4  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 AAAAA   prefixlen 64  scopeid 0x20<link>
        ether AAAAA  txqueuelen 1000  (Ethernet)
        RX packets 12176  bytes 17869942 (17.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3507  bytes 213850 (208.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

しかし、私の出力は表示されています

b'eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500\n        inet 10.0.2.4  netmask 255.255.255.0  broadcast 10.0.2.255\n        inet6 AAAAA prefixlen 64  scopeid 0x20<link>\n        ether AAAAA  txqueuelen 1000  (Ethernet)\n        RX packets 12179  bytes 17870182 (17.0 MiB)\n        RX errors 0  dropped 0  overruns 0  frame 0\n        TX packets 3510  bytes 214090 (209.0 KiB)\n        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\n\n'
ファニードマン

python 3では、あなたはバニラ、文字列、しかし店は、エスケープシーケンスをバイナリ文字列だけではなく、持っている'\n'ためのスタンドで改行をこの文字列を通常どおりに処理するには、デコードします。最小限の例:

>>> string = b"Hello \n World"
>>> print(string)
>>> b'Hello \n World'
>>> string = string.decode('ascii')  # sring decoding
>>> print(string)
    Hello 

    World
>>> 

この質問も見てください:Python3で「バイナリ文字列」を通常の文字列に変換する方法は?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pycharmは印刷物のkwargsを間違っていると認識します(python3)

分類Dev

Python2とPython3のtype()関数の違い

分類Dev

Python2とPython3のzip()関数の違い

分類Dev

Pythonでガウス関数のフーリエ変換をプロットしましたが、結果は間違っていました

分類Dev

Pythonを使用したGoogleScrapeの結果の数が間違っています

分類Dev

操作10 **(-9)はPythonでは正しいが、Cythonでは間違っている

分類Dev

eulerProjectの関数の結果が間違っています

分類Dev

usort関数の結果が間違っています

分類Dev

Symfony 2OneToMany関係-関連付けの結果が間違っている

分類Dev

一致関数が間違った結果を出している

分類Dev

setIntervalによる関数の結果が間違っています

分類Dev

D3-更新時に要素の数は正しいが、値が間違っている

分類Dev

Pythonのreplace関数は間違った結果をもたらします

分類Dev

LEFTJOINが正しい結果を返していません。私は何が間違っているのですか?

分類Dev

クラス関数は出力は正しいがメソッドが間違っている

分類Dev

Python関数コードの出力が間違っている

分類Dev

Python math.arctan()の結果が間違っていますか?

分類Dev

def関数で何を間違って入力したのかわかりませんが、Pythonではすべて正しいですか?

分類Dev

SortBy Valuesの結果が間違っているのはなぜですか?

分類Dev

mysqlログの結果は正しい答えを示していますが、送信は間違った答えを示しています

分類Dev

なぜPythonは引数の数が間違っている関数呼び出しを許可するのですか?

分類Dev

Python分割関数が間違った結果を表示する

分類Dev

錆:モジュール関数から結果を返す:型引数の数が間違っている:予期される2、見つかった0

分類Dev

Oracleの "order by"句は、結果を間違った順序で返すか、結果が欠落しています

分類Dev

Python2とPython3の正しい処理

分類Dev

印刷した日付が間違っているのはなぜですか?

分類Dev

Mercurialは、Python3の代わりにPython2を使用して属性が欠落しているため失敗します

分類Dev

python3とpython2で配布パッケージを構築することの違いは?

分類Dev

Makefileが間違ったPythonインストールを検出しました(Python3ではなくPython2)

Related 関連記事

  1. 1

    Pycharmは印刷物のkwargsを間違っていると認識します(python3)

  2. 2

    Python2とPython3のtype()関数の違い

  3. 3

    Python2とPython3のzip()関数の違い

  4. 4

    Pythonでガウス関数のフーリエ変換をプロットしましたが、結果は間違っていました

  5. 5

    Pythonを使用したGoogleScrapeの結果の数が間違っています

  6. 6

    操作10 **(-9)はPythonでは正しいが、Cythonでは間違っている

  7. 7

    eulerProjectの関数の結果が間違っています

  8. 8

    usort関数の結果が間違っています

  9. 9

    Symfony 2OneToMany関係-関連付けの結果が間違っている

  10. 10

    一致関数が間違った結果を出している

  11. 11

    setIntervalによる関数の結果が間違っています

  12. 12

    D3-更新時に要素の数は正しいが、値が間違っている

  13. 13

    Pythonのreplace関数は間違った結果をもたらします

  14. 14

    LEFTJOINが正しい結果を返していません。私は何が間違っているのですか?

  15. 15

    クラス関数は出力は正しいがメソッドが間違っている

  16. 16

    Python関数コードの出力が間違っている

  17. 17

    Python math.arctan()の結果が間違っていますか?

  18. 18

    def関数で何を間違って入力したのかわかりませんが、Pythonではすべて正しいですか?

  19. 19

    SortBy Valuesの結果が間違っているのはなぜですか?

  20. 20

    mysqlログの結果は正しい答えを示していますが、送信は間違った答えを示しています

  21. 21

    なぜPythonは引数の数が間違っている関数呼び出しを許可するのですか?

  22. 22

    Python分割関数が間違った結果を表示する

  23. 23

    錆:モジュール関数から結果を返す:型引数の数が間違っている:予期される2、見つかった0

  24. 24

    Oracleの "order by"句は、結果を間違った順序で返すか、結果が欠落しています

  25. 25

    Python2とPython3の正しい処理

  26. 26

    印刷した日付が間違っているのはなぜですか?

  27. 27

    Mercurialは、Python3の代わりにPython2を使用して属性が欠落しているため失敗します

  28. 28

    python3とpython2で配布パッケージを構築することの違いは?

  29. 29

    Makefileが間違ったPythonインストールを検出しました(Python3ではなくPython2)

ホットタグ

アーカイブ