我对蟒蛇还不熟悉。如果太简单的话请原谅我。我只想使用python中的date
命令提取日期
import subprocess
p = subprocess.Popen(["date", '+%m/%d/%y'], stdout=subprocess.PIPE)
output,err = p.communicate()
print (output)
现在正在打印
b'05/14/13\n'
如何在开始时删除不必要的“\n”和
b
。 最佳答案
托马斯的回答是正确的,但我觉得有必要作更多的解释。
我总是.decode('utf8')
是p.communicate()
或check_output()
等的结果。这是因为stdout/stdin总是以二进制模式打开,除非显式提供文件句柄,所以总是接收/发送字节,而不是str。
在这种情况下,我建议只使用check_output(['date','+%m/%d/%y'])
而不是创建一个popen对象,然后基本上扔掉:)
所以,我建议把它改写成:
import subprocess
result = subprocess.check_output(['date', '+%m/%d/%y']).decode('utf8').rstrip()
print (result)
在更高的元级别上,有一个问题是您是否需要使用
subprocess
来完成此任务。毕竟,格式化日期/时间的方法是
time.strftime()
。这:import time
print(time.strftime('%m/%d/%y'))
以更简单的方式实现整个程序的预期效果。
同样来自tink的评论:
import datetime
print datetime.date.today().strftime('%m/%d/%y')