2024-10-03 21:36:08 发布
网友
我正在写一段代码,在中间我希望它进入主终端并剥离我的数据集[]和'',但是当我包含''部分时,python认为我刚刚完成了字符串(我认为)是否有其他方法可以做到这一点。这是我的密码:
com=['cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt'] s0='' com=s0.join(com) res=os.system(com)
python没有意识到我希望在终端中执行整行,特别是中间部分的“”。你知道吗
请改用三重引号字符串:
com = ["""cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt"""]
python实际上有4种引号供您使用:
'...' "...: """...""" '''...'''
(三重报价品种也适用于多行):
"""foo bar"""
当然,如果你真的很拮据,你可以用反斜杠转义引号,但由于有这么多不同类型的引号在你的支配下,似乎应该很少有必要。你知道吗
'cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt2'没有做你认为应该做的事情,例如:
'cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt2'
>>> print 'cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt2' cat new.txt | tr -d "s/,[]*//g" >meantenbri.txt2
请注意,中间的两个单引号不见了,这是因为实际上有两个单独的字符串并排出现,'cat new.txt | tr -d "s/,[]'和'*//g" >meantenbri.txt2',解释器将这些字符串连接在一起。要在字符串中实际包含这些单引号,有两个选项:
'cat new.txt | tr -d "s/,[]'
'*//g" >meantenbri.txt2'
com = """cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt2"""
转义中间的单引号:
com = 'cat new.txt | tr -d "s/,[]\'\'*//g" >meantenbri.txt2'
请注意,整个com = [...]、s0 = ''、com = ''.join(com)实际上是不必要的,只需通过移除方括号从一开始将com创建为字符串即可。你知道吗
com = [...]
s0 = ''
com = ''.join(com)
com
作为补充说明,^{}比os.system()更适合运行外部程序。我认为在这种情况下,它会像这样(未经测试):
os.system()
import subprocess cmd = ['tr', '-d', "s/,[]''*//g"] p = subprocess.Popen(cmd, stdin=open('new.txt'), stdout=open('meantenbri.txt2', 'w')) p.communicate() res = p.returncode
尽管Sven在评论中提到了这一点,但您首先不应该使用外部程序。你知道吗
com=['cat new.txt | tr -d "s/,[]\'\'*//g" >meantenbri.txt2']
用\
请改用三重引号字符串:
python实际上有4种引号供您使用:
(三重报价品种也适用于多行):
当然,如果你真的很拮据,你可以用反斜杠转义引号,但由于有这么多不同类型的引号在你的支配下,似乎应该很少有必要。你知道吗
'cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt2'
没有做你认为应该做的事情,例如:请注意,中间的两个单引号不见了,这是因为实际上有两个单独的字符串并排出现,
'cat new.txt | tr -d "s/,[]'
和'*//g" >meantenbri.txt2'
,解释器将这些字符串连接在一起。要在字符串中实际包含这些单引号,有两个选项:转义中间的单引号:
请注意,整个
com = [...]
、s0 = ''
、com = ''.join(com)
实际上是不必要的,只需通过移除方括号从一开始将com
创建为字符串即可。你知道吗作为补充说明,^{} 比
os.system()
更适合运行外部程序。我认为在这种情况下,它会像这样(未经测试):尽管Sven在评论中提到了这一点,但您首先不应该使用外部程序。你知道吗
用\
相关问题 更多 >
编程相关推荐