Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have about 300,000 CSV files which I want to convert to shapefiles, but ArcGIS and QGIS can only convert one CSV at a time.

Are there any ways to batch convert my CSVfiles?

x y z1 z2 z3 z4
1 2 3  4  5  6

My csv files just have a few columns like above

Can any one help me?

share|improve this question

2 Answers 2

up vote 3 down vote accepted

If you really have ~300,000 csv files, I honestly hope that you don't want that many resultant shapefiles... For your sake, I hope that was a typo.

It is relatively simple to batch any tool in ArcGIS--you just right click on it and select 'batch'. I'd look into using Make XY Event Layer. As the layer is temporary, you'll want to save it. From the help:

The output point feature layer created by this tool is temporary and will not persist after the session ends. You can export this event layer to a feature class on disk using the Copy Features, Feature to Point, or Feature Class to Feature Class tool.

If you want just 1 shapefile, you need to concatenate the csv files. Something like this post should get you started. You'll need to edit it some to not write the headers from each file.

share|improve this answer
thanks for your answer!but it's still need to click many times in batch menu ~ –  blueman010112 Aug 11 '13 at 17:28
@blueman010112, you need to learn how to script via arcpy so that you can input a folder and the tool will iterate over all the shapefiles in the folder. –  Paul Aug 11 '13 at 17:51

Can you program in Python? Get the osgeo bindings for ogr and gdal, then adapt something like this:


Can you program in R? Get the sp and rgdal packages and then write a script to loop over them.

Can you program in anything? No? Suggest you learn!

share|improve this answer
thanks for your anwser I am learning python now ~thank for info! –  blueman010112 Aug 11 '13 at 17:29

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.