今天在测试python程序时,按照书本上的例子来测试。在win7下始终会报一个IOError的异常,所用的开发工具为eclipse+pydev。
例子如下:
''' Created on 2013-3-31 @author: kazeik ''' import os if __name__ == '__main__': pass ls = os.linesep print type(ls) print ls fname="d:\test.txt" all = [] while True: if os.path.exists(fname): print "error" else: break print "\nEnter lines ( by itslf to quit).\n" while True: entry=raw_input("> ") if entry==".": break else: all.append(entry) fobj = open(fname,"w") fobj.writelines(['%s%s' % (x,ls) for x in all]) fobj.close() print "DONE"
Traceback (most recent call last): File "D:\USER\j2ee\workspace\P_test\src\MakeTextFile.py", line 35, in <module> fobj = open(fname,"w") IOError: [Errno 22] invalid mode ('w') or filename: 'd:\test.txt'
【解答】
路径是字符串,里面包含了个\t,是个转义符号,所以文件路径有问题。win下路径分隔符用的是反斜杠导致了这个问题。
你改成这样 f = open(r'F:\Dropbox\python\test.txt', 'r') 。在字符串前加r,声明为raw字符串,这样就不会处理其中的转义了。
于是修改代码中的fname
将fname改成如下:
fname=r"d:\test.txt"这时控制台不再报错,运行通过;