1.file_object = open(file_name, access_mode='r', buffering=-1)
可选参数buffering用于指示访问文件所采用的缓冲方式。其中0表示不缓冲,1代表只缓冲一行数据,任何其他大于1的值代表使用给定值作为缓冲区大小。不提供该参数或者给定负值代表使用默认缓冲机制,既对任何类电报机设备使用行缓冲,其他设备使用正常缓冲。
2.通用换行符支持(UNS)
不同平台用来表示行结束的符号是不同的。当使用'U'标志打开文件的时候,所有行分隔符通过Python的输入方法(例如read())返回时都会被替换为换行符NEWLINE(\n)。
3.
输入
read() 用来直接读取字节到字符串中,最多读取给定数目个字节。如果没有给定size参数(默认值为-1)或者size值为负,文件将被读取直至末尾。
readline() 读取打开文件的一行。然后整行,包括行结束符,作为字符串返回。有可选参数,默认为-1,代表读至行结束符。
readlines() 不像其他两个输入方法一样返回一个字符串,它会读取所有行然后把它们作为一个字符串列表返回。
输出
write() 把含有文本数据或二进制数据块的字符串写入到文件中去。
writelines() 是针对列表的操作,接受一个字符串列表作为操作,将它们写入文件。行结束符不会被自动加入。
没有writeline()
输出方法write()或writelines()不会自动加入行结束符,你应该在向文件写入数据前自己完成。
4.
seek()方法。offset字节代表相对于某个位置偏移量,位置的默认值为0,代表从文件开头算起,1代表从当前位置算起,2代表从文件末尾算起。
5.
filename = raw_input('Enter file name: ');
f = open(filename, 'r');
allLines = f.readlines();
f.close();
for eachLine in allLines:
print eachLine,;
读完所有行才开始向屏幕输出数据,如果文件很大,并不好。
filename = raw_input('Enter file name: ');
f = open(filename, 'r');
for eachLine in f:
print eachLine,
f.close();
使用文件迭代器,每次只读取和显示一行。
6.
filename = raw_input('Enter file name: ');
f = open(filename, 'w');
while True:
aLine = raw_input("Enter a line ('.' to quit)");
if aLine != '.':
f.write('%s%s'%(aLine, os.linesep));
else:
break;
f.close();
raw_input不会保留用户输入的换行符。调用write()方法时必须加上换行符