Python之os.popen和os.system


廢話連篇

為了搞個多測試機並行運行也是花了時間研究了下,要使用macaca將多個設備運行起來,當然是需要用設備ID號,服務端口號等等,此處將簡單介紹一下關於如何獲取設備號。

 

簡單介紹

這里使用os.popen來獲取設備號,使用os.system來啟動macaca服務(有時間了將macaca的一些經歷寫寫吧)。

兩者的區別是:

(1)os.system(cmd)的返回值只會有0(成功),1,2

(2)os.popen(cmd)會把執行的cmd的輸出作為值返回。

 

實際操作

以獲取設備號的操作為例。

代碼如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time    : 2018/5/20 18:20

# @Author  : --------

# @Site    :

# @File    : adb.py

# @Software: PyCharm

import os

#獲取連接設備

GET_ANDROID = "adb devices"

# 使用popen

value_popen = os.popen(GET_ANDROID)

s_v = value_popen.readlines()

print('popem:',s_v)

print('---------------我是分界線----------------')

# 使用system

value_system = os.system(GET_ANDROID)

print('system:',value_system)

運行結果如下:

popen:

 
popen

此方法可以使用read、readline、readlines方法進行內容操作。

代碼如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time    : 2018/5/20 18:20

# @Author  : -----

# @Site    :

# @File    : adb.py

# @Software: PyCharm

import os

#獲取連接設備

GET_ANDROID = "adb devices"

# 使用popen

value = os.popen(GET_ANDROID)

s_v = value.readlines()

for v in s_v:

    s_value = str(v).replace("\n", "").replace("\t", "")

    if s_value.rfind('device') != -1 and (not s_value.startswith("List")) and s_value != "":

        s_vv = s_value[:s_value.find('device')].strip()

        print(s_vv)

print('---------------我是分界線----------------')

# 使用system

# value_system = os.system(GET_ANDROID)

# print('system:',value_system)

 
進行內容操作

很方便可以將device ID分離出來。

system:

 
system

此方法只是返回一個code值,可操作性比較低。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM