I don't think "too stupid" is accurate, more like "not experienced enough yet". That said this may fix your problem:
void readDirectory(File dir, String folder) {
boolean files = true;
while(files) {
File entry = dir.openNextFile();
if (! entry) {
files = false;
entry.close();
} else {
if (entry.isDirectory()) {
String folder_new = folder;
folder_new += entry.name();
folder_new += "/";
entry.close();
readDirectory(entry, folder_new);
} else {
outputFile(entry, folder);
}
}
entry.close();
}
}
The added entry.close() statements close the file handles after use which may help. The python code really does need python2 (or more work than I'm prepared to do right now) as there are more problems than just the brackets on print. I don't have an Arduino ide up at the moment so I don't know if this even compiles but it should. I think that once you get that "done" from the arduino you should see a stream of data from the arduino on the serial output console (assuming the SD card is in the reader when you load the sketch) the same as when you ran cardinfo.
Peter