【问题标题】:Python script errors out when run from mac cron job but not from mac terminal从 mac cron 作业而不是从 mac 终端运行时出现 Python 脚本错误
【发布时间】:2017-10-31 10:33:17
【问题描述】:

我有一个Python v3.6 脚本,它从数据库中读取,其中包含一些带有中文字符的数据。当我安排它从 Mac Cron Job 运行时,这个脚本会出错;但是从我的 Mac 终端运行时执行良好。

知道,当我们从 Cron 作业运行脚本时,是否需要启用某些语言包或其他东西?

Crontab 命令

#*/2 * * * * /usr/local/bin/python3 /Users/admin/Documents/Scripts/wht/gbi.py >> test.txt

【问题讨论】:

  • 用错误更新问题
  • 也许它使用的是 python 2.x 而不是 3.6
  • 我已经在我的 cron 作业命令中给出了直到 python 3 的路径
  • 能否贴出以cron运行时抛出的错误

标签: python macos character-encoding cron


【解决方案1】:

让我们对这些字符进行编码。示例:

不要在源代码中直接使用它们

 SPECIAL_CHARS = u"aAàÀảẢãÃáÁạẠăĂằẰẳẲẵẴắẮặẶâÂầẦẩẨẫẪấẤậẬ"

让我们使用:

 SPECIAL_CHARS = u'aA\xe0\xc0\u1ea3\u1ea2\xe3\xc3\xe1\xc1\u1ea1\u1ea0\u0103\u0102\u1eb1\u1eb0\u1eb3\u1eb2\u1eb5\u1eb4\u1eaf\u1eae\u1eb7\u1eb6\xe2\xc2\u1ea7\u1ea6\u1ea9\u1ea8\u1eab\u1eaa\u1ea5\u1ea4\u1ead\u1eac'

可以将字符串编码成utf-8并正常使用:

 encoded_str = SPECIAL_CHARS.encode('utf-8')

 print(type(encoded_str))
 print(encoded_str)

【讨论】:

  • 哦,我从数据库中得到这些,但事先不知道所有字符会在那里。是否有任何 API 可用于执行此操作? [我是 Python 新手 :)]
猜你喜欢
  • 2011-08-18
  • 2018-01-08
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 2020-04-01
  • 2010-09-14
相关资源
最近更新 更多