UN Locode
CSV done without even a little thought... with a README and maybe some column labels and maybe some normal machine readable decimal degrees. You shouldn't have to read anything to be able to load a *single* CSV file into a GIS (QGIS, ArcGIS etc).
So San Francisco, US doesn't even get Long/Lat?
grep US *.csv | grep 'San Francisco'
2015-1 UNLOCODE CodeListPart3.csv:,"US","EMB","Embarcadero/San Francisco","Embarcadero/San Francisco","CA","---4----","AI","0401",,,
2015-1 UNLOCODE CodeListPart3.csv:,"US","SFO","San Francisco","San Francisco","CA","1--45---","AI","9601",,,
2015-1 UNLOCODE CodeListPart3.csv:,"US","SYF","South San Francisco","South San Francisco","CA","--3-----","RQ","9307",,,