On 2013-02-19 15:27, inshu chauhan wrote:
Here is my attempt to merge 10 files stored in a folder into a single file :import csv with open("C:\Users\inshu.chauhan\Desktop\test.arff", "w") as w: writer = csv.writer(w) for f in glob.glob("C:\Users\inshu.chauhan\Desktop\For Model_600\*.arff"): rows = open(f, "r").readlines() writer.writerows(rows) Error: Traceback (most recent call last): File "C:\Users\inshu.chauhan\Desktop\Mergefiles.py", line 3, in <module> with open("C:\Users\inshu.chauhan\Desktop\test.arff", "w") as w: IOError: [Errno 22] invalid mode ('w') or filename: 'C:\\Users\\inshu.chauhan\\Desktop\test.arff' Why my programme is not working ?? :(
Look at the traceback. It says that the path is: 'C:\\Users\\inshu.chauhan\\Desktop\test.arff' All but one of the backslashes are doubled. That's because the backslash character \ starts an escape sequence, but if it can't recognise the escape sequence, it treats the backslash as a literal character. In that string literal, '\t' is an escape sequence representing a tab character (it's equal to chr(9)), but '\U', '\i' and '\D' are not escape sequences, so they are equivalent to '\\U, '\\i' and '\\D' respectively. What you should do is use raw string literals for paths: r"C:\Users\inshu.chauhan\Desktop\test.arff" or use '/' instead (Windows allows it as an alternative, unless it occurs initially, which you'll rarely want to do in practice): "C:/Users/inshu.chauhan/Desktop/test.arff" -- http://mail.python.org/mailman/listinfo/python-list
