当前位置: 首页 > 编程学习 > Python > 正文

Python文件处理

2017-04-02 来源:CSDN kill_root

python如何读取文件数据

Python中的基本输入机制都是基于行的:所以说从文本文件中向程序中读取数据时,一次会获得一个数据行。

- open(filePath,mod)內建函数

文件打开函数,filePath为打开文件的路径,mod为打开方式,该函数经常与for...in 控制语句结合使用做一些遍历文件的操作

    ```python
    file_handle=open('xxx.txt','r')
    # do something you like
    for each_line in file_handle:
        print(each_line)
file_handle.close()
```
如果是文件写入,则使用file_handle=open('xxx.txt','w'),但需要注意的是如果以w方式写文件,如果目标文件不存在,则创建文件并写入,如果文件存在,则是清空该文件并写入新数据,如果要追加数据,那么请以‘a’的方式打开文件file_handle=open('xxx.txt','a')

- seek(off, where=0)函数

从文件中移动off个操作标记(文件指针),如果是正数,往结束方向移动,负数则往开始方向移动。如果设定了where参数,就以where设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置,file_handle.seek(0) 表示回到文件开头

- tell()函数 获得当前文件读取指针的位置
- split(str,num)内建函数

该方法返回一个字符串列表,str 为 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num为可选参数,如果有指定值,那么仅分割num个子字符串

str="hello,python,i,like,you"

subStrs1=str.split(",")

subStrs2=str.split(",",2)

print(subStrs1)

#结果为['hello', 'python', 'i','like','you']

print(subStrs2)

#结果为['hello', 'python']

open 模式

w 表示写方式,a 为追加模式 (从 EOF 开始, 必要时创建新文件),r+ 为读写模式,w+ 表示读写模式 (参见 w ),a+ 为读写模式 (参见 a ),rb 以二进制读模式,wb 为二进制写模式 (参见 w ),ab 为二进制追加模式(参见 a ),rb+ 为二进制读写模式(参见 r+ ),wb+ 为二进制读写模式 (参见 w+ ),ab+ 为二进制读写模式 (参见 a+ )

file_handle.read([size]) size为读取的长度,以byte为单位

file_handle.readline([size]) 读一行,如果定义了size,有可能返回的只是一行的一部分

file_handle.readlines([size]) 把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。

file_handle.write(str) 把str写到文件中,write()并不会在str后加上一个换行符

file_handle.writelines(seq) 把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。

file_handle.close()

关闭文件 如果一个文件在关闭后还对其进行操作会产生ValueError

file_handle.flush() 把缓冲区的内容写入硬盘

file_handle.isatty() 文件是否是一个终端设备文件(unix系统中的)

file_handle.next()

返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。