这是我要更改的 xml/kml 文件:http: //pastebin.com/HNwzLppa
我要解决的问题:我们有一个由日志文件中的数据生成的 kml 文件。数据有时与 GMT 存在时间偏差。(我们正在解决这个问题。)我们无法控制该过程用于生成 kml 的数据,否则整个练习将毫无意义。我们编写了一个脚本来检查与 GMT 的偏差。
我想要完成的事情: 使用我们已经编写的脚本将小时、分钟和秒的差异输入到这个脚本中。找到所有<timestamp>
标签并提取datetime
并执行 atimedelta
并写回新的时间戳,然后保存文件。
到目前为止我做了什么:
import datetime
import time
import re
import csv
from bs4 import BeautifulSoup
#Open the KML file.
soup = BeautifulSoup(open('doc.kml'), "xml")
#Take keyboard input on hours minutes and seconds offset
hdata = raw_input("How many hours off is the file: ")
mdata = raw_input("How many minutes off is the file: ")
sdata = raw_input("How many seconds off is the file: ")
#Convert string to float for use in timedelta.
h = float(hdata)
m = float(mdata)
s = float(sdata)
#Find the timestamp tags in the file. In this case just the first 68.
times = soup('timestamp', limit=68)
#Loop thru the tags.
for time in times:
timestring = time.text[8:27]
newdate = (datetime.datetime.strptime(timestring, "%Y-%m-%d %H:%M:%S") + datetime.timedelta(hours= h, minutes = m, seconds = s))
times.replaceWith()
#Print to output the contents of the file.
print(soup.prettify())
我得到的错误:
Traceback (most recent call last):
File ".\timeshift.py", line 27, in <module>
times.replaceWith()
AttributeError: 'ResultSet' object has no attribute 'replaceWith'
我的问题是我该如何做我想做的事情,并且在 prettify 语句之后将文件写入磁盘。
提前致谢。