python分号怎么用_如何从包含分号的配置文件中使用Python打印行?

我在Ubuntu 12.04上有一个python 2.7脚本,使用它从文本文件获取的Fabric本地命令。当我尝试在其中使用带有分号的单线时,Fabric无法解析行并中断。有没有可行的语法,还是应该在其他地方运行此命令?

---------编辑-----------

比最初包含的问题陈述更简洁的问题陈述。它根本不是关于Fabric的,即使在配置文件中此文本也无法打印:

python配置文件:

[firmware-jobs]

1: echo ".... ; ....." > /tmp/tmp-file

Fabric的python文件:

from ConfigParser import SafeConfigParser

confparser = SafeConfigParser()

confparser.read(CONFFILE)

for (key, command) in CONFOBJ.items('firmware-jobs'):

try:

print command

------结束编辑-----------

if grep -q "CPLD " tmp-file ; then echo "y" | ; fi

我努力了:

"if grep -q "CPLD " tmp-file ; then echo "y" | ; fi"

if grep -q "CPLD " tmp-file '\;' then echo "y" | '\;' fi

if grep -q "CPLD " tmp-file ";" then echo "y" | ";" fi

典型故障:

[localhost] local: "if grep -q "CPLD " tmp-file

/bin/sh: 1: Syntax error: Unterminated quoted string

Fatal error: local() encountered an error (return code 2) while executing '"if grep -q "CPLD " tmp-file'

要求:

我不希望将条件转换为Python,因为该文本文件支持跨不同硬件平台和发行版的通用Python脚本。

解决方案

您需要在字符串的内部和外部使用不同的引号,否则Python会认为您正在结束字符串。试试这个:

'if grep -q "CPLD " tmp-file ; then echo "y" | ; fi'

或者,如果您还需要在字符串中使用单引号,请执行以下操作:

'''if grep -q "CPLD " tmp-file ; then echo "y" | ; fi'''

Python认为三重引号是单引号之外的另一种引号,并且直到看到另一个三重引号才结束字符串。(这也适用于"""。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值