0

1000 以上のファイルから小さなデータベース (個人用) を構築しています。特定の単語を探していますが、その単語がファイルに含まれていない場合に発生する問題は、NoData行をどのように書くことができますか?

  • アフリカ ボツワナ テスト 51.1922546 -113.9366341
  • アフリカ ケニア スカイダイブ ケニア -13.788388 33.78498
  • アフリカ マラウイ スカイダイブ マラウイ NoData NoData
  • アフリカ モーリシャス スカイダイブ オーストラリア 30.5000854 -8.824510574
  • アフリカ モロッコ ベニ メラル 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 を返してリストに追加してもらいたいです

申し訳ありませんが、別のコンプから質問を書きました。

4

1 に答える 1

0

このようなことを意味しますか?

つまり、ファイル内の行に id="lat" が含まれていない場合、"No Data" が 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...
于 2012-04-29T09:27:10.080 に答える