when trying run script getting error:
valueerror: i/o operation on closed file.
i checked similar questions , doc, yet no success. , while error clear enough haven't been able figure out. apparently missing something.
# -*- coding: utf-8 -*- import os import re dirpath = 'path\\to\\dir' filenames = os.listdir(dirpath) nb = 0 open('path\\to\\dir\\file.txt', 'w') outfile: fname in filenames: nb = nb+1 print fname print nb currentfile = os.path.join(dirpath, fname) open(currentfile) infile: line in infile: outfile.write(line) edit: since removed with open message error changed to:
`open (c:\\path\\to\\\\file.txt, 'w') outfile` : syntaxerror : invalid syntax pointer underneath as
edit: confusion question. after all, restored with , fixed indents bit. , working fine!
it looks outfile @ same level infile - means @ end of first with block, outfile closed, can't written to. indent infile block inside infile block.
with open('output', 'w') outfile: in b: open('input') infile: ... ... you can simplify code here using fileinput module, , making code clearer , less prone wrong results:
import fileinput contextlib import closing import os closing(fileinput.input(os.listdir(dirpath))) fin, open('output', 'w') fout: fout.writelines(fin)
Comments
Post a Comment