我正在建立一个小型数据库(供个人使用),来自1000多个文件。我正在寻找特定的单词,但是如果文件中没有包含该单词,我会遇到的问题如何编写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“'在行:”因为它只向包含id = lat的文件添加到列表“lat”。我明白为什么,但我希望解析器返回并向列表中添加NoData
抱歉,我从另一个comp中写了这个问题。
答案 0 :(得分:0)
你的意思是这样吗?
即:如果文件中没有行包含id =“lat”,它会将“无数据”附加到lat。
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...