我用Google搜索并用Google搜索,但找不到任何可行的内容。我需要在文件名中抓取日期,将其转换为julian日期,然后重命名原始文件,使其包含julian日期。
for file in os.listdir("/home/mydir/"):
if file.startswith("awesome"):
awesome_file = file.split(' ')
awesome_date = awesome_file[2]
awesome_year = awesome_date.split()
awesome_year = awesome_date[0] + awesome_date[1] + awesome_date[2] + awesome_date[3]
awesome_month = awesome_date[4] + awesome_date [5]
awesome_day = awesome_date[6] + awesome_date[7]
date_command = "date -d " + awesome_month + "/" + awesome_day + "/" + awesome_year + " +%Y%j"
print(date_command)
julian_date = subprocess.Popen(date_command)
print(julian_date)
我知道问题出在subprocess.Popen行中,但正如您所看到的,我必须将实际的bash命令作为变量运行,因为对于/ home / mydir中找到的每个文件,命令可能会有所不同/我无法弄清楚拯救生命的正确语法。另外,就像提醒一样,我还需要捕获subprocess.Popen的输出,因为我需要STDOUT来重命名原始的awesome_file。
答案 0 :(得分:-1)
使用Python中已有的工具,而不是调用外部程序。
from datetime import datetime
d = datetime(int(awesome_year), int(awesome_month), int(awesome_day))
print "{0.tm_year}{0.tm_yday}".format(d.timetuple())