将字符串作为参数传递给 python 脚本

尼克·施罗克

我想将一串 ZPL 代码从一个 python 脚本传递到另一个 python 脚本。在第二个脚本中使用时,该字符串格式错误。如何将字符串文字作为参数传递给另一个 python 脚本而不会格式错误?

原始字符串

^XA^FO20,20^BQ,2,3^FDQA,001D4B02107A;1001000;49681207^FS^FO50,50^ADN,36,20^FDMAC: 001D4B02107A^FS^FO50,150^ADN,36,20^FDSN: 1001000^FS^FO50,250^ADN,36,20^FDCode: 49681207^FS^XZ

畸形字符串

XAFO20,20BQ,2,3FDQA,001D4B02107A;1001000;49681207FSFO50,50ADN,36,20FDMAC:

我调用第二个脚本的代码

def printLabel():
    label = "^XA"+"^FO20,20^BQ,2,3^FDQA,"+"001D4B02107A;1001000;49681207"+"^FS"+"^FO50,50"+"^ADN,36,20"+"^FD"+"MAC: "+"001D4B02107A"+"^FS"+"^FO50,150"+"^ADN,36,20"+"^FD"+"SN: "+"1001000"+"^FS"+"^FO50,250"+"^ADN,36,20"+"^FD" + "Code: "+"49681207"+"^FS"+"^XZ"
    command = "zt320print.py "+label
    print command
    sys.stdout.flush()
    exitCode = os.system(str(command))

接收参数的代码

if __name__ == "__main__":
    zplString = str(sys.argv[1])
    print zplString
    printZPL(zplString)
安德鲁里斯

如果您的代码需要按原样编写(包括将 ZPL 代码串在一起的相当奇怪的方式,以及通过 shell 中介调用单独的脚本,以及避免subprocess,就此而言),您可以解决您的问题一些小的调整:

首先,将您的代码字符串用双引号括起来。

label= '"^XA'+"^FO20,20^BQ,2,3^FDQA,"+"001D4B02107A;1001000;49681207"+"^FS"+"^FO50,50"+"^ADN,36,20"+"^FD"+"MAC: "+"001D4B02107A"+"^FS"+"^FO50,150"+"^ADN,36,20"+"^FD"+"SN: "+"1001000"+"^FS"+"^FO50,250"+"^ADN,36,20"+"^FD" + "Code: "+"49681207"+"^FS"+'^XZ"'

其次,确保您实际上是python从 shell调用的:

command = "python script2.py "+label

最后,如果您担心无法从命令行正确读取特殊字符,请使用unicode_escapefromcodecs.decode确保正确传输。
有关更多信息,请参阅此答案unicode_escape

# contents of second script
if __name__ == "__main__":
    from codecs import decode
    import sys
    zplString = decode(sys.argv[1], 'unicode_escape')
    print(zplString)

现在来自您的第一个脚本的调用将正确传输代码:

import sys
import os

sys.stdout.flush()
exitCode = os.system(str(command))

输出:

^XA^FO20,20^BQ,2,3^FDQA,001D4B02107A;1001000;49681207^FS^FO50,50^ADN,36,20^FDMAC: 001D4B02107A^FS^FO50,150^ADN,36,20^FDSN: 1001000^FS^FO50,250^ADN,36,20^FDCode: 49681207^FS^XZ

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将“ shell脚本”作为字符串传递给Python子进程。

传递一个JSON字符串作为参数传递给Python脚本导致报价问题

通过SSH将dict作为参数传递给Python脚本

如何将参数作为 JSON 传递给 python 脚本

将php字符串作为参数传递给php脚本中调用的javascript函数

HTML脚本将字符串作为字符串传递给Json并传递给Java

如何传递base64字符串作为Python脚本的参数?

如何将变量(字符串)从 python 传递给 bash 脚本,然后回显它?

将JSON参数作为字符串传递给python hadoop流应用程序

将数据作为字符串传递给 Python 中的 argparse:无法识别的参数

将字符串作为元组作为参数传递python

将参数传递给 python 脚本的问题

将bash参数传递给python脚本

从bash脚本将参数传递给python

QProcess 将参数传递给 python 脚本

从bash脚本将列表作为变量传递给python脚本

如何使用argparse模块将文件作为参数传递给python脚本中的参数?

使用bash脚本将参数传递给python脚本

如果将目录路径作为命令行参数传递给python,则执行哪个python脚本?

如何将管道凭据参数作为环境变量传递给 python 脚本

将正则表达式模式作为系统参数传递给Python脚本

将列表作为命令行参数传递给Python脚本

将目录作为命令行参数传递给 python 脚本

如何将字符串列表作为参数传递给批处理脚本?

将参数列表作为一个字符串传递给python函数

将特殊字符作为参数传递给Powershell脚本函数

将字符串数组作为POST传递给PHP脚本

当我尝试将字符串作为参数传递给Azure自定义脚本扩展中的Powershell函数时,“传递了无效的数组...”

将变量组作为字典传递给 Python 脚本