2017-08-13 141 views
-5

我試圖將文本文件(它是一個字符串)的第二列轉換爲時間戳並將第一個文件中的所有值寫入另一個文件(轉換日期)在Python中將文本字符串列轉換爲日期列

import datetime 
import time 

infile = "datein.txt" 
outfile = "dateout.txt" 

fin = open(infile) 
fout = open(outfile, "w") 
for date in fin: 
    date = ate = datetime.datetime(int(date.split(",")[1]).strptime("row[1]", "%d%b%Y:%H:%M:%S") 
fout.write(date) 

我得到一個錯誤說「類型錯誤:一個整數需要」

Input File

+2

郵政編碼爲文本,而不是圖片。 –

+0

我看着你的代碼,這很容易修復,但我建議你環顧四周,因爲它們已經被全部回答了。 -1用於發佈圖片而不是代碼。 –

+0

嗨anja9221!不要讓反對票打敗你。這裏的投票是讓其他人評估帖子質量的機制。我不會投票你的問題,但其他人有的原因是因爲它沒有格式化的方式,很容易讓我們來幫助你...即你的代碼應該張貼在問題中,以便我們可以快速看到它。還有其他一些原因爲什麼這個問題是downvoted,[你可以在這裏瞭解爲什麼](http://www.catb.org/~esr/faqs/smart-questions.html#stackoverflow)。這個網站是關於學習的。改善你的問題有助於我們所有人做得更好。我希望你能再試一次! – zelusp

回答

0

integerdatetime期待抱怨,因爲date.split(",")[1])包含字符串,甚至試圖ŧ由於該字符串類似於要傳遞到datetime.strptime"%d%b%Y:%H:%M:%S"),只要使用該字符串無需任何轉換,得到一個datetime對象的日期格式,然後我們投

ValueError: invalid literal for int() with base 10: '01JAN2010:00:00:00'

:○將其轉換爲integer將返回由此產生的<datetime.datetime>對象到一個字符串,因此打開的文件可以寫入它。

for date in fin.readlines()[1::]: 
    d = datetime.datetime.strptime(date.split(",")[1], "%d%b%Y:%H:%M:%S") 
    fout.write(str(d)+'\n') 

給了我們與內容dateout.txt

2010-01-01 00:00:00 
2012-01-01 01:00:00 
2013-01-01 02:00:00 

希望有所幫助。