[问题] subprocess和参数编码问题

楼主: MashiroKinji (MashiroKinji)   2016-01-04 15:47:03
我写了一支程式用法大概是这样
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()
这行上面还是有编码的问题...
楼主: MashiroKinji (MashiroKinji)   2016-01-04 15:58:00
以找到问题处可能是写档案的时候byteIO和StringIO的问题 可是不知道为什么subprocess会错误直接下指令就不会
作者: bibo9901 (function(){})()   2016-01-04 16:29:00
u'2015-10-15', u'2015-11-15' 这样可以吗?
作者: ENEP (Moo)   2016-01-04 16:52:00
py2? py3?还有一个可能是OS 如果你用py2 on windows, check:http://stackoverflow.com/questions/846850/简单的说就是cli下的argv格式不一定等于subprocess给的argv
楼主: MashiroKinji (MashiroKinji)   2016-01-04 17:21:00
我发现问题了 因为调用subprocess它选用python2.7去执行但是我是用python3去写的 不知道有没有方法指定subprocess 用的python是 3的版本
作者: darkgerm (黑骏)   2016-01-04 21:43:00
写完整路径 (e.g., /usr/bin/python3) 或是设环境变量讲错了,设环境变量不行

Links booklink

Contact Us: admin [ a t ] ucptt.com