2016-02-25 271 views
-2

我有一個txt文件,其中包含電視臺名稱列表,後面跟着它們的位置,我需要用HTML標記包裝。該文本文件遵循以下格式:解析文本文件爲HTML標記

Prime TV 
Orange, Australia 

Prime TV 
Tamworth, Australia 

Prime TV 
Wagga Wagga, Australia 

前行的名字,第二行是位置,第三行是空白(分隔符)。這些只有150多個。

我期待下面的標記來包裝這樣的:

<div class="CL_item"> 
     <p class="CL_title">$StationName</p> 
     <p class="CL_sub">$StationLoc</p> 
    </div> 

我只是不知道如何做到這一點。我研究過一些PHP(http://html.net/tutorials/php/lesson15.php),但似乎並不能區分頂部/底部線。我沒有和一個PHP解決方案結婚。我只是在尋找一個啓動點,我不知道從哪裏開始。蟒蛇? bash grep?

+0

你期待什麼?你在找人爲你編碼嗎?如果是這樣,你應該聘請一名程序員。另一方面,如果你有一些你寫的代碼不符合你的要求,請發佈它。我們可能會提供一些有用的提示。 –

+0

好點。我只是在尋找正確的方向。比如,查看這種類型的動作,使用這種語言等。我真的不知道從哪裏開始。 – echo

+0

您使用的是Linux機器嗎? – user454038

回答

-1

也許我錯過了一些複雜性,但假設文件完全按照您的陳述佈置,您可以使用普通線條閱讀方法。在Python中,文件讀取在23版本中非常相似。 readline方法對你的情況特別有用。

因此,例如,你可以遍歷文件一次讀取三行,直到再結,像這樣:

def get_stations(file_name): 
    # open the file for reading 
    with open(file_name) as f: 
     # for every station name & location... 
     while True: 
      # get the name and strip out the newline character 
      name = f.readline().strip() 
      # if the name is empty then we've probably reached 
      # the end of the file 
      if name == '': break 
      # get the location in the same way we got the name 
      location = f.readline().strip() 
      # yield allows us to use this function in a for...in loop 
      yield name, location 

      # skip the blank line between stations 
      f.readline() 

你會使用這個功能在一個for ... in循環,可能使用一個簡單的模板來輸出數據。

# Our template string. This could also be read in from a file. 
# Anything in curly brackets is a {variable} name. 
template = ''' 
<div class="CL_item"> 
    <p class="CL_title">{station_name}</p> 
    <p class="CL_sub">{station_location}</p> 
</div>''' 

# create and open output.html for writing 
with open('output.html', 'w') as f: 
    # loop through every station in the input.txt file 
    for name, location in get_stations('input.txt'): 
     # add the stations name and location using the template's format method 
     station_html = template.format(
      station_name = name, 
      station_location = location 
     ) 
     f.write(station_html) 

請注意,我沒有真正嘗試過這樣,所以它可能需要適應您的特定文件,如果它包含任何怪癖。另外你應該知道格式函數不會從字符串中隱藏尖括號('<'和'>'),所以如果這是一個問題,你可能想查找如何在Python中轉義html。