我是Python新手,希望使用下面列出的内容读取CSV文件:
DN, whenCreated, name, pwdLastSet, location
"CN=Jackson2,OU=Domain Controllers,DC=one,DC=onecity,DC=net",20100623145323.0Z,Jackson8,1.30745E+17,Japan,
"CN=Jackson4,OU=Prod,OU=Windows 2014 Servers,OU=STE,DC=one,DC=onecity,DC=net",20041208192730.0Z,Jackson7,1.30735E+17,Aussie,
此CSV文件长达数千行,我想将所有字段输出到新的CSV文件,并将whenCreated
和pwdLastSet
字段更改为人类可读的格式。任何意见,将不胜感激。请注意,在此示例中,有5列包含3行,第一行是列标题。
所以请放轻松,因为这是我写过的第一个python脚本。但任何建议,意见,最佳实践将不胜感激。
import csv
import sys
import time
from datetime import datetime
def adTimestampToUnix(ad):
#Convert an 18-digit Windows NT timestamp to a UNIX timestamp
return int(((ad / 10000000) - 11644473600))
import datetime
file = open("source.csv", 'rt')
fileWrite = open("target.csv", 'w', newline='')
try:
csvFile = csv.reader(file)
csvWrite = csv.writer(fileWrite, dialect='excel')
for row in csvFile:
csvWrite.writerow(row)
for row in csvFile:
whenCreated = row[1]
year = whenCreated[:4]
month = whenCreated[4:6]
day = whenCreated[6:8]
hour = whenCreated[8:10]
minute = whenCreated[10:12]
seconds = whenCreated[12:14]
whenCreated =(month+"/"+day+"/"+year+" "+hour+":"+minute+":"+seconds)
pwdLastSet = int(row[3])
pwdLastSet = adTimestampToUnix(pwdLastSet)
if pwdLastSet < 1:
pwdLastSet = ""
else:
pwdLastSet = datetime.datetime.utcfromtimestamp(pwdLastSet).strftime('%Y-%m-%d %H:%M:%S')
row = (row[0],whenCreated,row[2],pwdLastSet,row[4])
csvWrite.writerow(row)
finally:
file.close()