2014-01-31 89 views
2

「我甚至不會從python-fix的角度來看這個,而只是重定向運行python腳本的輸出: python/path/to/script/myscript。 py> /path/to/output/myfile.txt 您的腳本中沒有任何內容需要更改,所有的打印語句都將以您的文本文件結尾。「將Python代碼輸出到文件並將時間戳添加到文件名

我怎樣才能使用上面的代碼輸出到一個文件,但也時間戳文件名? 例如:蟒蛇/path/to/script/myscript.py> /path/to/output/myfile01-22-2014.txt

+0

您引用的人建議您使用shell /命令提示符來處理文件的創建。你在跑什麼外殼,例如bash或windows命令提示符?兩者都應該有方法來創建像這樣的時間戳相當簡單。 – Marius

+0

我正在運行bash .....我是python的新手,並且正在使用它來從嵌套恆溫器獲取信息並將其保存到文件中並將其保存到時間戳中... python /usr/local/bin/nest.py -u [email protected]###.com -p ####### show> /Users/Alan/Dropbox/NestAPI/CSV-Files/nest.csv – user3255477

+0

related:[將stdout重定向到Python中的文件?]( http://stackoverflow.com/q/4675728/4279) – jfs

回答

2

如果你正在跟蹤這個人的建議(這似乎是合理的),然後這是不是一個Python多bash問題problem-可以使用date命令生成您的控制檯命令中的文件名,如:

python /path/to/script/myscript.py > /path/to/output/myfile$(date "+%b_%d_%Y").txt 
1
import sys 
from datetime import datetime 
from cStringIO import StringIO 
backup = sys.stdout 
sys.stdout = StringIO() 
run_script(); 
print 'output stored in stringIO object' 
out = sys.stdout.getvalue() 
sys.stdout.close() 
sys.stdout = backup 
filename = '/path/to/output/myfile-%s.txt'%datetime.now().strftime('%Y-%m-%d') 
f = open(filename,'w') 
f.write(out) 
f.close() 
+0

感謝您的幫助,但我不確定如何將此代碼 – user3255477

+0

與os.popen一起使用,但帶日期參數的shell選項似乎更適合您的方法,就像@Marius所說的那樣''/ path/to/output/file -'date +%Y-%m-%d'.txt''或'/ path/to/output/file - $(date + %Y-%間 - %d).txt' – markcial

3

我做這樣的事情的時間戳添加到我的文件名。

import time, os, fnmatch, shutil 


t = time.localtime() 
timestamp = time.strftime('%b-%d-%Y_%H%M', t) 
BACKUP_NAME = ("backup-" + timestamp) 
相關問題