python文件操作

本文详细介绍了Python中文件的各种操作方法,包括文件的打开与关闭、读取与写入、使用迭代器读取文件等。此外还讲解了如何利用Python进行文件权限判断、删除文件、修改文件名等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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读取文件内容,赋值给c
print(c)
f.close()

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

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

f = open('f:/hello.txt')
c = f.read(3)
print(c)  #  Hel
c = f.read(4)
print(c)  # lo w
c = 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)  # He
c = f.readline()
print(c)  # llo world!!
f.close()

这里写图片描述

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

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

import io
print io.DEFAULT_BUFFER_SIZE  # 8192

使用迭代器读取文件

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

print lines
f.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 sys
if __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.encoding
f.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  # hell
os.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)返回路径的文件名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值