IOError: [Errno 2] No such file or directory trying to open a file [duplicate]

Hmm, there are a few things going wrong here.

for f in os.listdir(src_dir):
    os.path.join(src_dir, f)

You’re not storing the result of join. This should be something like:

for f in os.listdir(src_dir):
    f = os.path.join(src_dir, f)

This open call is is the cause of your IOError. (Because without storing the result of the join above, f was still just ‘file.csv’, not ‘src_dir/file.csv’.)

Also, the syntax:

with open(f): 

is close, but the syntax isn’t quite right. It should be with open(file_name) as file_object:. Then, you use to the file_object to perform read or write operations.

And finally:

write(line)

You told python what you wanted to write, but not where to write it. Write is a method on the file object. Try file_object.write(line).

Edit: You’re also clobbering your input file. You probably want to open the output file and write lines to it as you’re reading them in from the input file.

See: input / output in python.

Leave a Comment