python知识捡拾---文件操作(一)

1.file(name[,mode[,buffering]])文件的打开或创建
  mode可以取如下的值
参数说明
r以只读的方式打开
r+以读写的方式打开
w以写入的方式打开,先删除文件原有内容再重新写入新的内容,如果文件不存在则创建一个新的文件
w+以读写的方式打开,先删除文件原有内容再重新写入新的内容,如果文件不存在则创建一个新的文件
a以写入的方式打开文件,在文件的末尾追加新的内容,如果文件不存在则创建1个新的文件
a+以读写的方式打开文件,在文件的末尾追加新的内容,如果文件不存在则创建1个新的文件

文件创建、写入和关闭操作:

context="""hello world"""
f = file('hello.txt','w')
f.write(context)
f.close()
2.文件的读取:

1.按行读取方式readline()
每次读取文件中的一行,需要使用永真表达式循环读取文件
示例:

f=open('hello.txt')
while True:
    line = f.readline()
    if line:
        print line,
    else:
        break
f.close()

2.多行读取方式readlines()
使用readlines()读取文件,需要通过循环访问readlines()返回列表中的元素
示例:

f=f.open('hello.txt')
lines = f.readlines()
for line in lines:
    print line,

3.一次性读取方式read()
read()将从文件中读出所有的内容,并赋值给1个字符串变量
示例:

f=open('hello.txt')
context=f.read()
print context

可以通过控制read()参数的值,返回指定字节的内容:

f=open('hello.txt')
context=f.read(5)#读取文件中前5个字节的内容,此时文件的指针移动到第5个字节处
print context
print f.tell()
context=f.read(5)
print context
print f.tell()
f.close()
3.文件的写入

可以使用write(),writelines()方法写入文件,使用write()方法把字符串写入文件,writelines()方法可以把列表中存储的内容写入文件

f=file("hello.txt","w+")
li=["hello world\n","hello China\n"]
f.writelines(li)
f.close
4.文件的删除

文件的删除需要用到os和os.path模块,文件的删除通过调用remove()函数实现。例如:首先创建1个文件hello.txt,然后判断该文件是否存在,如果存在则删除
示例:

import os 
file('hello,txt','w')
if os.path.exists('hello.txt'):
    os.remove('hello.txt')
5.文件的复制

file类没有提供直接复制文件的方法,但是可以使用read(),write()方法模拟实现文件的拷贝功能
示例:

src=file("hello.txt","w")
li = ["hello world\n","hello China\n"]
src.writelines(li)
src.close()
#把hello.txt拷贝到hello2.txt
src=file("hello.txt","r")
dst=file("hello2.txt","w")
dst.write(src.read())
src.close()
dst.close()

shutil模块是另一个文件、目录的管理接口,提供了一些用于复制文件、目录的函数。
copyfile(src,des)函数可以实现文件的拷贝
使用shutile模块实现文件的拷贝

import shutil
shutil.copyfile("hello.txt","hello2.txt")
shutil.move("hello.txt","../")
shutil.move("hello2.txt","hello3.txt")
6.文件的重命名
*os模块的函数rename()可以对文件或目录进行重命名*
import os
li = os.listdir(".")#返回当前目录的文件列表
print li
if "hello3.txt" in li:
    os.rename('hello3.txt','hi.txt')
elif 'hi.txt' in li:
    os.rename('hi.txt','hello3.txt')
示例2:
#把后缀名为"html"的文件修改为"htm"后缀的文件
import os
files = os.listdir(".")#找到当前文件夹的所有文件
for filename in files: #遍历所有文件
    pos = filename.find(".") #找到.所在的位置,并把值赋给pos
    if filename[pos + 1:]=="html":#找到.后面是html的文件
        newname=filename[:pos+1]+"htm" #将新文件命名为xxx.htm
        os.rename(filename,newname)    #重新命名文件

为获取文件的后缀名,这里找到"."所在的位置,然后通过分片filename[pos+1:]截取后缀名,这个过程可以使用os.path模块的函数splitext()实现,splitext()返回一个列表,列表中的第1个元素表示文件名,第2个元素表示文件的后缀名

示例:
import os
filenames = os.listdir(".")
for filename in filenames:
    li = os.path.splitext(filename)
    if li[1]==".htm":
        newname=li[0]+".html2"
        os.rename(filename,newname)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值