Python:在文本文件中编辑单行

时间:2014-03-31 17:53:10

标签: python

我有一个纯文本HTML文件,我正在尝试创建一个修改此文件的Python脚本。

其中一行写着:

var myLatlng = new google.maps.LatLng(LAT,LONG);

我有一个小小的Python脚本,可以抓住国际空间站的坐标。然后我想要它修改一个文件来添加纬度和经度。

是否可以使用RegEx并解析该行?我不喜欢解析整个文件。如果可能,最好使用哪个模块?我怎么指出那条线?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您的HTML文件中包含您在上面写出的行。您希望将(LAT,LONG)部分替换为python脚本将找到的实际lat和long值。

如果这是正确的,那么我建议继续将HTML文件写入.txt文件:

import urllib
import time 

while True: 

    open = urllib.urlopen(the_url_where_the_html_comes_from)
    html = open.read()

    my_file = open("file.txt","w")
    my_file.write(html)
    my_file.close()

    #you don't need any fancy modules or RegEx to edit one unique line. 
    my_file = open("file.txt","r+")
    text = my_file.read()
    text.replace("LatLng(LAT,LONG)","LatLng("+lat_variable+","+long_variable+")")
    real_text = text
    my_file.close()

    #now you want the change that you made to remain in that file
    my_file = open("file.txt","w")
    my_file.write(real_text)
    my_file.close()

    #if you check "file.txt", it should have those values replaced. 

    time.sleep(However long until the html updates)

我还没有测试过这段代码,所以请告诉我它是否有效!

编辑:如果HTML文件不断变化,那么您可以使用urllib模块进行更新。见上面的代码。

答案 1 :(得分:0)

非常感谢你的帮助。这个网站太棒了。

我使用了这里提供的信息并进行了一些阅读。我使用以下方法解决了这个问题:

#Open the html file for writing
o = open("index.html","w")
#Open the html template file, replace the variables in the code.  
line in open("template"):
line = line.replace("$LAT",lat)
line = line.replace("$LON",lon)
#Write the variables to the index.html file
o.write(line + "\n")
#Close the file
o.close()

再次感谢