我正在从 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 写了这个问题。