0

我正在从 1000 多个文件中构建一个小型数据库(供个人使用)。我正在寻找特定的单词,但是如果文件中不包含该单词,我将如何编写 NoData 行,我想要的是:

  • 非洲博茨瓦纳测试 51.1922546 -113.9366341
  • 非洲 肯尼亚 Skydive 肯尼亚 -13.788388 33.78498
  • 非洲 马拉维 Skydive 马拉维 NoData NoData
  • 非洲毛里求斯 SkyDive Austral 30.5000854 -8.824510574
  • 非洲 摩洛哥 Beni Mellal NoData NoData
for i in os.listdir(Main_Path):
    if "-" in i:
        for filename in os.listdir(Main_Path+i):
            if ".dat" in filename and os.path.isdir(Main_Path+i):
                f_split = filename.split("-")
                if len(f_split) == 4:
                    continent.append(f_split[0])
                    country.append(f_split[1])
                    state.append(f_split[2].split(".")[0])
                else:
                    continent.append(f_split[0])
                    country.append("")
                    state.append(f_split[1].split(".")[0])
                d = open(Main_Path+i+"/" + filename, "r")
                files = d.readlines()
                d.close()
                for k, line in enumerate(files):
                    if "Dropzone.com :" in line:                        
                        dzname.append(line.split(":")[1].strip())
                   elif 'id="lat"' in line:
                        lat.append(line.split("=")[3].split('"')[1].strip())
myFile = open(Main_Path+"MYFILE.csv", "wb")
wtr= csv.writer( myFile )
for a,b,c,d,e in zip(continent,country,state,dzname,lat):
    wtr.writerow([a,b,c,d,e])
myFile.close()

我是堆栈“elif 'id="lat"' in line:”,因为它只将包含 id = lat 的文件添加到列表“lat”中。我明白为什么,但我希望解析器返回并将 NoData 添加到列表中

抱歉,我从另一个 comp 写了这个问题。

4

1 回答 1

0

你的意思是这样的吗?

也就是说:如果文件中没有一行包含 id="lat",它将在 lat 后面附加“No Data”。

            snip...

            d = open(Main_Path+i+"/" + filename, "r")
            files = d.readlines()
            d.close()
            found_latitude = False
            for k, line in enumerate(files):
                if "Dropzone.com :" in line:                        
                    dzname.append(line.split(":")[1].strip())
               elif 'id="lat"' in line:
                    found_latitude = True
                    lat.append(line.split("=")[3].split('"')[1].strip())
            if not found_latitude:
                lat.append("No Data")

            snip...
于 2012-04-29T09:27:10.080 回答