python - 返回值后,在 main func 中的值已更改
问题描述
我尝试了与订阅一起使用的编写函数。当我打印价值时,我得到了我的期望,但是当我返回价值时,我得到了其他东西。我在我的输出中添加链接。当我在函数中打印时,我在返回主脚本后得到了我的期望,我得到了其他值。
输出是:
/cad/workSpaces/EDISON_cadm/.cad
poooo
f----- 1 - - - ./.cad/runsets/pvs/t.00_00_01_scr/RCE_TS18SL_QRC_3M1T3_USG/EAD/1/setup/TSL_0.18_3M1T3_USG_setup.ini
None
#!/usr/bin/python3
import os
import sys
import subprocess
import soscmd
import re
if __name__== '__main__':
if len(sys.argv) < 1:
print ("Usage: '%s <Object Name> '" %sys.argv[0])
sys.exit(1)
objName = sys.argv[1]
class Terminal:
def __init__(self, command=None):
print ("poooo")
self.command = None
self.stderr = subprocess.STDOUT
self.stdout = subprocess.PIPE
if command is not None and command !='':
self.command = command
def run(self, command=None):
if command is not None and command !='':
self.command = command
if self.command is not None:
cmd_elems = self.command.split()
sub_proc = subprocess.Popen(cmd_elems, stderr=self.stderr, stdout=self.stdout)
output, error = sub_proc.communicate()
aaa = output.decode("utf-8").splitlines()
print(aaa[0])
#sub_proc.kill()
return aaa[0]
#return None
def pysos(cmd):
term = Terminal()
term.run('soscmd ' + cmd)
print (objName)
if os.path.isdir(objName):
result = pysos('status -sall /cad/workSpaces/EDISON_cadm/.cad')
print (result)
i = 0
#while i < len(result):
# print (result)
#print (listObject[i])
# i += 1
else:
print ("ovedddd")
解决方案
推荐阅读
- java - 驱动程序可执行文件不存在
- pika - Pika/RabbitMQ 如何从单个连接创建新通道?
- sql - 如何在 WHERE 子句中将 CSV TEXT DATE 转换为 DATE
- python - 如何在 django 中通过 xsd 生成 models.py 类?
- r - R摘要中小数点后的控制数字
- python-3.x - 如何修复 pytest 5.2 执行返回 TypeError: attrib() got an unexpected keyword argument 'convert'?
- swift - tvOS 13 顶层 - NSExtensionPrincipalClass `product_module_name.ContentProvider` 必须实现至少一个公共协议
- mongodb - 在 mac 中安装 mongo shell
- java - 使用简单字母表删除 ascii
- c# - 如何使用 C# 在 Safari for iPhone 上使用 Selenium 执行拖放操作?