Python文件操作

1、文件的打开和关闭

在python中,使用open方法来打开文件,使用close方法来关闭文件

f.open("file name","访问模式")        #以某种访问模式打开文件
f.close()        #关闭文件

上面open方法中的访问模式可以不填,但是必须保证要打开的文件是存在的!否则会报错

注意在不使用某打开的文件时,要及时关闭文件,因为临时写入文件的内容是暂时存在内存里的,只要电源一断数据就会丢失,一旦关闭,文件就会被存入硬盘里,关机、断电对其也没有影响

2、文件模式

上面在讲open方法时,我们讲到了一个访问模式,其实顾名思义,访问模式就是当你想打开一个文件时,你想以什么样的模式打开,是只读还是可写入,以下是python官方文档提供的一些文件访问模式

Character(字符)Meaning(含义)
'r'open for reading (default)(只读方式打开,默认模式
'w'open for writing, truncating the file first(打开文件用于写入,覆盖文件里已有文件
'x'open for exclusive creation, failing if the file already exists(创建一个新的文件,如果文件已存在则会提示失败
'a'open for writing, appending to the end of the file if it exists(打开一个文件用于写入,会在原有文件的末尾添加内容)
'b'binary mode(以二进制形式打开)
't'text mode (default)(以文本模式打开)
'+'open a disk file for updating (reading and writing)(打开文件读写
'U'universal newlines mode (deprecated)

这里需要注意的是,一般我们打开文件时,除非特别需要不要使用二进制模式,但是如果要打开图片等文件时,需要以二进制的模式打开

3、文件的读写

写文件:在Python中我们写入文件一般用write方法

注意:当需要在一个文件里写入数据时,如果文件不存在,则python胡ui在当前文件夹下或者在指定文件夹下新建一个文件,用于写入数据!

f=open('test.txt','w')
f.write('I Love Python')
f.close()

上面的程序中,我们试图在当前文件夹下打开名为test.txt的文件,写入"I Love Python",如果文件不存在,则会被新建


读取文件,在python中,我们读取文件的方法比较多,有时候需根据自己的需要来选择具体的方法

read方法:read(size)

size表示要从文件中读取的数据长度,单位为字节

#在当前文件夹创建新文件进行读写操作
file=open("new_file.txt","w+")
file.write("New Content")
file.read(5)        #此时如果打印这个content,什么都没有,这是因为文件还没有保存
file.close()
file_plus=open("new_file.txt","r")
content_plus=file_plus.read(5)
print(content_plus)

##运行结果
New C

readlines方法

readlines方法用于一次性读取整个文件的内容,把结果返回给一个列表,列表的每一个元素为其一行内容

"""
现有一文件python_file.txt,里面有三行文字,每一行都是“I Love Python”,现在我们用readlines方法读取文件的内容
"""

file=open("python_file.txt","r")
content=file.readlines()
for lines in content:
    print(content)

#结果

I Love Python

I Love Python

I Love Python

readline方法

readline方法与readlines方法是一对孪生姐妹,区别是,readlines方法一次读取全部文件,而readline方法每次读取一行,直到读完为止

文件读写应用——制作文件的备份

现有一个文件data.txt,现编写一个程序对data.txt文件进行备份

#制作文件备份
while True:
    try:
        file_name=input("请输入文件名:")
        file_open=open(file_name,"r")       #打开对于名称的文件时,不需要加引号!
        data_file=open("data.txt","w+")
        for content in file_open.readlines():
            data_file.write(content)
        for content_data in data_file.readline():
            print(content_data)
        data_file.close()
        file_open.close()
        
    except FileNotFoundError:
        print("文件不存在!")

下面是另一个版本的答案

#文件备份,书上实例

old_file_name=input("请输入要拷贝的文件名:")
old_file=open(old_file_name,'r')
if old_file:
    #提取文件后缀名
    location_flag=old_file_name.rfind('.')
    if location_flag>0:
        file_flag=old_file_name[location_flag:]
        new_file_name=old_file_name[:location_flag]+"备份"+file_flag
        new_file=open(new_file_name,"w+")
        for content in old_file.readlines():
            new_file.write(content)
            
old_file.close()
new_file.close()

4、文件的定位

在python中,我们可以使用tell方法来读取文件的位置

# -*- coding: utf-8 -*-

file_open=open("I AM AN FILE.txt",'r')
file_read=file_open.read(4)
print(file_read)
file_open.tell()

使用seek方法定位到文件指定位置

seek(offset[,whence])


"""
offset表示偏移量,也就是我们需要移动的字节
whence表示方向,0 默认值,从文件起始位置开始
              1 表示从文件当前位置开始偏移
              2 表示从文件末尾位置开始偏移
"""

5、os模块的应用

导入os模块

import os

文件的重命名

import os
os.rename(old_name,new_name)

文件的删除

import os
os.remove(path)

#path表示指定文件的路径

创建文件夹,获取当前目录,改变默认目录,获取当前目录,删除文件夹

import os

os.mkdir("File_name")    #在当前目录下创建文件夹

os.getcwd()        #获取当前目录

os.chdir("../")        #改变默认目录

os.listdir("./")        #获取当前目录列表

os.rmdir("file_name")        #删除文件夹

  • 10
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值