我正试图从" date"中提取年份字段。产量 代码:
import sys
import os
import subprocess
per_name = input('Enter name:')
age = input('Enter age:')
to_date = subprocess.Popen(["date"],stdout=subprocess.PIPE)
date = subprocess.Popen(['awk',"'{print","$NF}'"],stdin=to_date.stdout)
act_date = date.communicate()
to_date=str(act_date)
print("Year: "+act_date)
我收到以下错误:
awk: syntax error at source line 1
context is
>>> ' <<<
missing }
awk: bailing out at source line 1
Traceback (most recent call last):
File "pyt_ex1.py", line 10, in <module>
print("Year: "+act_date)
请使用&#39; awk&#39;
以正确的方式提取它答案 0 :(得分:0)
为什么要尝试使用awk? python的str.split()将按空格分割输入,与awk做同样的事情。
year = date_string.split()[-1]
然后您可以获取列表的最后一个元素。事实上,你甚至不需要从bash获取日期。 Python有时间和日期时间模块。它看起来像这样:
import datetime
year = datetime.date.today().year
如果您确实想要使用awk而不是其他某种机制,那么这将起作用(请注意第二个参数中删除的引号):
date = subprocess.Popen(["awk","{print $NF}"],stdin=to_date.stdout)
在OSX和Fedora上测试过。