小编Ste*_*anS的帖子

将指数转换为浮点数

这是我的代码,试图将该行的第二个字段从指数转换为float.

outputrrd = processrrd.communicate()
(output, error) = outputrrd
output_lines = output.split('\n')
for line in output_lines:
    m = re.search(r"(.*): ", line)
    if m != None:
        felder = line.split(': ')
        epoch =  felder[0].strip(':')
        utc = epoch2normal(epoch).strip("\n")
        #print felder[1]
        data = float(felder[1])
        float_data = data * 10000000
        print float_data
        resultslist.append( utc + ' ' + hostname + ' ' +  float_data)
Run Code Online (Sandbox Code Playgroud)

但是,程序因此错误而停止:

File "/opt/omd/scripts/python/livestatus/rrdfetch-convert.py", line 156, in <module>
    data = float(felder[1])
ValueError: invalid literal for float(): 6,0865000000e-01
Run Code Online (Sandbox Code Playgroud)

有谁知道原因?

python floating-point exponent

4
推荐指数
3
解决办法
3万
查看次数

Python - 使用Popen中的列表作为命令

我尝试用Popen创建一个子进程.这是我的代码:

hostname = 'host'
servername = 'server'
commandargs = ['/usr/sbin/mminfo',' -o n',' -s',servername,' -q "client=\'',hostname,'\',savetime>=last day"',' -r "client,name"']
process = subprocess.Popen(commandargs, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)

问题是执行的命令失败并显示一条消息,联系的服务器不可用.似乎没有使用变量主机名...尝试使用字符串而不是列表,作为Popen中的命令(使用Shell = True)一切正常.

有谁知道代码有什么问题?

问候.斯特凡

python string subprocess list popen

3
推荐指数
2
解决办法
7462
查看次数

显示6.5235375356299998e-07无指数表示法

我必须将指数字符串转换6.5235375356299998e-07为浮点值,并将计算结果显示为0.00000065235 ...如何在Python程序中执行此操作?

python floating-point exponential

3
推荐指数
1
解决办法
8026
查看次数

Python - 使用重定向构造subprocess.popen

我想用popen创建一个子进程.特殊要求是在命令中使用shell方向.

args = [
    '/bin/cat',
    '<',
    'textfile',
    ]
process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                           env={'LANG':'de_DE@euro'})
processpid = process.pid
output = process.communicate()
Run Code Online (Sandbox Code Playgroud)

我不想使用shell = True选项,因此我在这里向您提出问题,如何实现它.

关心斯特凡

python redirect arguments subprocess

1
推荐指数
1
解决办法
306
查看次数