作者MashiroKinji (MashiroKinji)
看板Python
标题[问题] subprocess和参数编码问题
时间Mon Jan 4 15:47:03 2016
我写了一支程式用法大概是这样
python print_date_list.py start_date end_date
去印出两日期之间的日期
而我直下对程式下指令
python print_date_list.py 2015-10-15 2015-11-15
这样程式会正常运行
但是如果我利用另一个python程式去
subprocess.cell(['python','print_date_list.py','2015-10-15','2015-11-15'])
会出现
initial_value must be unicode or None, not str
的错误
不知道问题是不是出在print_date_list.py程式中有把str 转 datetime
datetime.strptime(sys.argv[2], u"%Y-%m-%d").date()
这行上面还是有编码的问题...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.17.133.18
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1451893625.A.C44.html
1F:→ MashiroKinji: 以找到问题处可能是写档案的时候byteIO和StringIO 01/04 15:58
2F:→ MashiroKinji: 的问题 可是不知道为什麽subprocess会错误直接下指 01/04 15:59
3F:→ MashiroKinji: 令就不会 01/04 15:59
4F:→ bibo9901: u'2015-10-15', u'2015-11-15' 这样可以吗? 01/04 16:29
5F:→ ENEP: py2? py3? 01/04 16:52
6F:→ ENEP: 还有一个可能是OS 如果你用py2 on windows, check: 01/04 17:05
8F:→ ENEP: 简单的说就是cli下的argv格式不一定等於subprocess给的argv 01/04 17:07
9F:→ MashiroKinji: 我发现问题了 因为调用subprocess它选用python2.7去 01/04 17:21
10F:→ MashiroKinji: 执行 01/04 17:21
11F:→ MashiroKinji: 但是我是用python3去写的 不知道有没有方法指定 01/04 17:22
12F:→ MashiroKinji: subprocess 用的python是 3的版本 01/04 17:22
13F:→ darkgerm: 写完整路径 (e.g., /usr/bin/python3) 或是设环境变数 01/04 21:43
14F:→ darkgerm: 讲错了,设环境变数不行 01/04 21:45