Why does `script.py <(cat *.gz)` work with subprocess.Popen in python 2 but not python 3?
问题 We discovered recently that a script we developed chokes in python 3.x (but not python 2.x) if it is supplied its input files via process substitution, e.g.: script.py <(cat *.gz) We've tested with commands other than gzip, such as cat, just to see if we get a similar error. They all complain that /dev/fd/63 (or /dev/fd/63.gz ) does not exist. Here's the (simplified) relevant bit of code: def open_gzip_in(infile): '''Opens a gzip file for reading, using external gzip if available''' #