python文件操作

来源:互联网 发布:swatch黑白时分淘宝 编辑:程序博客网 时间:2024/05/16 15:03

python常用读写文件函数

python打开文件

#文件打开方法open(name,[,mode[buf]])// name指定文件路径// mode指定文件的打开方式,读写,还是只读// buf指定缓冲区的大小

上面提到文件打开方式,有如下几种

mode 说明 注意 r 只读方式打开 文件必须存在 w 只写方式打开 文件不存在则创建文件,文件存在则清空文件内容 a 追加方式打开 文件不存在则创建文件 r+/w+ 读写方式打开 $1 a+ 追加和读写方式 $1 rb,wb,ab,rb+,wb+,ab+ 二进制文件

python读取文件

read[size]  // 读取文件,读取size字节readline[size]  // 读取一行readlines[size] // 读取完默认缓冲buffer个字节数据,返回由每一行组成的列表iter //使用迭代器读取文件

python写入文件

write(str)  // 将字符串写入文件writelines(str)  // 写入多行文件,参数为可以迭代的对象

python读取文件

f = open('f:/people.xml')  # 默认为只读print type(f)  # <type 'file'>f.close()

可以看到,这里通过open打开的文件,赋值给f,此时f为file类型

f = open('f:/people.xml')c = f.read()  #使用read读取文件内容,赋值给cprint(c)f.close()

此时正确的打印出了文件内容,结果如下:
这里写图片描述

下面我们分别测试上面三个读取文件的方法,此时我们需要读取的文件内容如下:
这里写图片描述

f = open('f:/hello.txt')c = f.read(3)print(c)  #  Helc = f.read(4)print(c)  # lo wc = f.readline() print(c)  # orld!!f.close()

这里写图片描述

f = open('f:/hello.txt') c = f.readline()  print(c)  # Hello world!!c = f.readline(2)print(c)  # Hec = f.readline()print(c)  # llo world!!f.close()

这里写图片描述

f = open('f:/hello.txt') list_c = f.readlines()print list_cf.close()

这里写图片描述
可以看到,此时全部输出来了,其实readlines函数,默认有一个缓冲大小

import ioprint io.DEFAULT_BUFFER_SIZE  # 8192

使用迭代器读取文件

f = open('f:/hello.txt') iter_f = iter(f)lines = 0for line in iter_f:    lines += 1print linesf.close()

python文件写入

f = open("f:/write.txt",'w')f.write("hello hello")f.close()

python写入文件到磁盘的时机

  • 主动调用close或者flush方法,写缓存同步到磁盘
  • 写入的数据量大于写缓存,写缓存同步到磁盘

python常见文件属性

f = open("f:/write.txt",'w')print f.fileno()  # 文件描述符print f.mode  # 文件权限print f.encoding  # 文件编码格式print f.closed  # 文件是否关闭f.close()

python从标准输入读取

str = raw_input("Enter your input: ");print("your input is :",str)

这里写图片描述

python文件命令行参数

import sysif __name__ == "__main__":    print len(sys.argv)    for arg in sys.argv:        print arg

这里写图片描述
此时运行如下:
这里写图片描述
这里,我们可以根据传递进来的,同时可以根据当前传递的参数来做不同的处理

python编码格式

我们可以通过下面的方法,创建一个指定格式的编码文件:

open(fname,mode,encoding,errors,buffering)f = codecs.open('test.txt','w','utf-8')print f.encodingf.close()

使用OS模块打开文件

os.open(filename, flag,[mode])flag: 打开文件方式os.O_CREATE  创建文件os.O_RDONLY  只读方式打开os.O_WRONLY  只写方式打开os.O_RDWR    读写方式打开os.read(fd, buffersize)  #读取文件os.write(fd, string)     # 写入文件os.lseek(fd, pos, how)   # 文件指针操作os.close(fd)             # 关闭文件import os# 写入文件fd = os.open('hello.txt',os.O_CREAT | os.O_RDWR)n = os.write(fd, "hello world.........")# 读取文件l = os.lseek(fd, 0, os.SEEK_SET) # l表示当前指针位置str = os.read(fd, 4)print str  # hellos.close(fd)

OS模块常用方法

OS方法 说明 access(path, mode) 判断文件权限 listdir(path) 返回当前目录下所有文件组成的列表 remove(path) 删除文件 rename(old, new) 修改文件或者目录名 remove(path) 删除文件 mkdir(path) 创建目录 mkdir(path) 创建多级目录 removedirs(name) 删除多级目录 rmdir(path) 删除目录

OS.path模块常用方法

OS.path方法 说明 exists(path) 当前路径是否存在 isdir() 是否是一个目录 isfile(path) 是否是一个文件 getsize(filename) 返回文件大小 dirname(p) 返回路径的目录 basename(p) 返回路径的文件名
0 0
原创粉丝点击