Python学习笔记(1)—文件操作

1、文本操作
     在python中文件的打开可以调用open(‘file path’,’mode’)方法,该方法类似于java中和文件建立管道,其中file path 为文件的绝对路径名,mode为方式,常用的方式有以下几种:
     (1) ’r’表示只能读取,如果文件不存在,那么将会新建文件
     (2) ’w'表示只能写入,如果文件不存在,那么将会新建文件 
     (3) ‘r+’表示同时允许写入和读取,
     (4) ’U’表示文本中会将\r,\n,\r\n 都识别为一行的结束,注意U需要大写,否则将不会成功,并且使用小写的u系统也不会提示错误。这个模式在 linux系统下处理csv文件可能会很有用处,因为在 linux中,’;’  用来分隔列,而’\r'用来分隔行

     另外有几个常用而且便利的方法会经常用到,如果想了解有多少函数python可以用来操作文件,可以使用help(file)命令查看:
     (1)read()
         该方法把整个文件读入到单一的字符串中,此时文件位置将偏移到文档的末尾
     (2)readline()
         该方法把文件的一行读入到单一的字符串中,注意如果选择模式为’r’,那么文件的行间隔符号为’\n’,如果选择模式为’U’,那么文件的行间隔符号可以为’\r’,’\n’,’\r\n’,调用后文件位置将偏移到文档的下一行开头
     (3)readlines()
          该方法把整个文件都读入到字符串列表中
     (4)write()
          该方法将字符串写入到文件中,注意如果模式中没有’a’那么字符串将会从文件位置复写入文件,而且无法撤回,因此写文件之前要确定是需要覆写,还是在文档最后添加
     (5)writelines()
           该方法将列表中的字符串写入文件
     (6)seek()
          该方法需要传入一个正整数,将当前的文件偏移位置移动到正整数所在的文件位置
     (7)close()
          关闭与文件之间的操作流
     (8)flush()
          将写入文件缓冲区的字符刷新到文件中

2、文件读取的最佳实践

     一般读取文件并进行操作,使用的方法大多如下:

     for line in open(’script.py’,’r+’).readlines():
          print(line,end=‘ ‘)

     但是调用readline()方法读取文件将会首先一次性将文件读入内存,如果文件数据量非常大,可能会导致内存不够无法运行。因此当预测需要操作的文件比较大时,比较好的处理方式,不是读取文件而是使用内部的迭代器操作,代码如下:

     for line in open(’script.py’,’r+’):
          print(line,end=‘ ')
     
     上述程序将会逐行读取文件,但是并没有刻意从文件中读取内容。
     但是如果能预测到将要操作的文件数据量较小,那么建议使用readlines() 方法将数据先全部读入内存,这样运行速度比使用文件迭代器要快许多。

3、文件操作csv文件

     实际应用时,往往会涉及到操作特定格式的文件,例如csv、json等,为方便使用python内部都会有读写相应文件格式的模块,通过import csv、import json等就可以将此模块导入。这里需要提醒注意的是,python 内置的csv模块并不好用,比如一个简单读写csv文件的例子如下所示,通过writerow  方法写入如下,但是写入的内容并不会分列,而是写在同一列中,因此不建议使用。
# coding: utf-8
import csv

csvfile = file('xuefeng_test.csv', 'wb')
writer = csv.writer(csvfile)
writer.writerow(['姓名', '年龄', '电话'])

data = [
    ('xuefeng', '25', '1234567'),
    ('xiaoqiang', '18', '789456')
]
writer.writerows(data)

csvfile.close()

猜你喜欢

转载自blog.csdn.net/pxffirst/article/details/51933243