首页 > 解决方案 > python fabric run(command) 命令被转义'更改为\'?

问题描述

为了我的命令

command = '''/home/andy/Documents/python_project/ebaysdk/bin/python3 -u /home/andy/Documents/python_project/ebaysdk/myprogram/run_collectiondata_a.py "[('CCIYU', 'EBAY-MOTOR', 1371602535, 20954)]"'''

我使用 Python Fabric 运行它

con.run('''%s''' % (command))

但是有一个错误,'转义到\'

Command: '/home/andy/Documents/python_project/ebaysdk/bin/python3 -u /home/andy/Documents/python_project/ebaysdk/myprogram/run_collectiondata_a.py "[(\'CCIYU\', \'EBAY-MOTOR\', 1371602535, 20954)]"'

在哪个字符'被转义到\'

如何禁止这种转义?</p>

标签: pythonfabric

解决方案


问题来自在字符串中使用 2 种引号,尤其是由 ' 定义的字符串(不需要 3 个)包含一些 '。
尝试使用(未选中,因为我没有设置 con 命令):

command = "/home/andy/Documents/python_project/ebaysdk/bin/python3 -u /home/andy/Documents/python_project/ebaysdk/myprogram/run_collectiondata_a.py \"[('CCIYU', 'EBAY-MOTOR', 1371602535, 20954)]\""
con.run(command)

command 已经是一个字符串,应该被 con 接受。使用外部“和内部\”应该保护最里面的'


推荐阅读