文本文件的输入与输出
1. 打开文件,创建文件对象。
f = open(文件名,模式)
最常用的模式有:
"r" # 只读
“w” # 写入
---------------------------------------------------------------------------------------------------------------------------------------
>>> f2 = open('E:\Dropbox\python\if.py', 'r')
-----------------------------------------------------or-------------------------------------------------------------------------------
>>> with open(r'E:\Dropbox\python\test.txt.txt') as f: #在执行dosomething收会自动关闭f
for line in f:
print line
line 1
line 2
this is another line
--------------------------------------------------------------------------------------------------------------------------------------
PS:这里出现过一个问题(http://www.douban.com/group/topic/34106129/):
>>> f = open('F:\Dropbox\python\test.txt', 'r')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
f = open('F:\Dropbox\python\test.txt', 'r')
IOError: [Errno 22] invalid mode ('r') or filename: 'F:\\Dropbox\\python\test.txt'
【解答】
路径是字符串,里面包含了个\t,是个转义符号,所以文件路径有问题。win下路径分隔符用的是反斜杠导致了这个问题。
你改成这样 f = open(r'F:\Dropbox\python\test.txt', 'r') 。在字符串前加r,声明为raw字符串,这样就不会处理其中的转义了。
在此感谢@ushuz 童鞋的解答~
=====================================联系==============================
>>> f1 = open(r'E:\Dropbox\python\newfile.txt.txt','w')
>>> f1.write('\t')
>>> f1.close()
>>> f1 = open(r'E:\Dropbox\python\newfile.txt.txt','r')
>>> for line in f1:
print line
>>> f1 = open(r'E:\Dropbox\python\newfile.txt.txt','w+') #可写追加模式
>>> f1.write('add one line\t')
>>> f1.close()
>>> f1 = open(r'E:\Dropbox\python\newfile.txt.txt','r')
>>> for line in f1:
print line
add one line
>>> f1 = open(r'E:\Dropbox\python\newfile.txt.txt','a+')
>>> f1.write('add another line\t')
>>> f1.close()
>>> f1 = open(r'E:\Dropbox\python\newfile.txt.txt','r')
>>> for line in f1:
print line
add one line add another line
----------------------------------------------------------------------------------------------------------------------------------------
>>> f1 = open(r'E:\Dropbox\python\t.txt', 'a+')
>>> f1.write('this is A')
>>> f1.write('\n')
>>> f1.write('this is B')
>>> f1.close()
>>> f2 = open(r'E:\Dropbox\python\t.txt','r')
>>> for line in f2:
print line
this is A
this is B
>>> f2.read(3) #读写位置后面的三个字符,由于之前已经全部读完,读写位置在最后
'' #所以都是空
>>> f2.close()
>>> f = open(r'E:\Dropbox\python\t.txt') #读写模式可以不写,默认为‘r’
>>> f.read()
'this is A\nthis is B'
>>> f.read(3)
''
>>> f.read(7)
''
>>> f.seek(1) #将读写位置移到1
>>> f.read(3)
'his' #这样就能读出2-4三个字符
https://www.douban.com/note/246259307/
浙公网安备 33010602011771号