Python文件处理

Python文件处理

上一篇文章:
Python异常处理

下一篇文章:
Python文件夹处理

1、文件的打开与关闭

打开语法:open(文件名,访问模式)

关闭语法:close()

访问模式解释
r以只读方式打开,文件的指针将会放在文件的开头。这是默认方式。
w打开一个文件,用于全新写入。如果文件以存在,将会覆盖,如果不存在,将会创建。
a打开一个文件,用于追加。如果文件以及存在,将会把文件指针放到文件末尾,如果不存在,将会新建。
rb以二进制方式打开一个文件,用于只读。
wb以二进制方式打开一个文件,用于全新写入。如果文件已经存在,将会覆盖,如果不存在,将会创建。
ab以二进制方式打开一个文件,用于追加写入。如果文件存在,将会把文件指针放到文件末尾;如果不存在,将会新建。
r+打开一个文件用读写,文件指针将会放在文件开头。
w+打开一个文件用于读写。如果文件已经存在,则覆盖,不存在则创建。
a+打开一个文件用于追加读写。如果文件已经存在,文件指针将会在文件末尾。如果文件不存在,将会创建。
rb+以二进制方式打开一个文件用于读写,文件指针将放在文件开头。
wb+以二进制方式打开一个文件用于读写,如果文件存在将被覆盖,不存在将会创建。
ab+以二进制方式打开一个文件用于读写,如果文件存在,文件指针将会在文件末尾,如果文件不存在,将会创建。

实例:

#第一次运行将会新建一个文件test.txt
file=open("text.txt","w")

#关闭
file.close()

结果:

当前目录下回出现一个新文件:text.txt

2、写数据

使用write()来写入数据

实例:

#第一次运行将会新建一个文件test.txt
file=open("text.txt","w")
file.write("这么帅的程序员,人间罕见呀。")
#关闭
file.close()

结果:text.txt文件内容为:

这么帅的程序员,人间罕见呀。

3、读数据

  • read(num)

read(num):num表示从文件中读取的长度,单位字节,如果没有传num,将会读取文件的所有内容。

实例:

text.txt:

这么帅的程序员,人间罕见呀。

程序代码:

#第一次运行将会新建一个文件test.txt
file=open("text.txt","r")

print(file.read(2))

print(file.read())
#关闭
file.close()

结果:

这么
帅的程序员,人间罕见呀。

不难看出:如果读了多次,下次读取是从上次读取结束位置开始的。

  • readlines

readlines(num):num为读取行数,如果不指定,将会返回全部,返回结果是有每行数据作为每个元素而组成的列表。

实例:

text.txt:

这么帅的程序员,人间罕见呀。
现在看到这句话的人是世上最幸运的人,
因为他(她)看到了的最帅的程序员写的Bug。

程序代码:

#第一次运行将会新建一个文件test.txt
file=open("text.txt","r")

content=file.readlines()
#type方法用来查看对于数据所属类型
print(type(content))
print(content)
#关闭
file.close()

结果:

<class 'list'>
['这么帅的程序员,人间罕见呀。\n', '现在看到这句话的人是世上最幸运的人,\n', '因为他(她)看到了的最帅的程序员写的Bug。']
  • readline

每次读取一行

实例:

text.txt:

这么帅的程序员,人间罕见呀。
现在看到这句话的人是世上最幸运的人,
因为他(她)看到了的最帅的程序员写的Bug。

程序代码:

#第一次运行将会新建一个文件test.txt
file=open("text.txt","r")

print(file.readline())
print(file.readline())
print(file.readline())


#关闭
file.close()

结果:(每行后面都有换行符,所有下面结果行数之间会有空格)

这么帅的程序员,人间罕见呀。

现在看到这句话的人是世上最幸运的人,

因为他(她)看到了的最帅的程序员写的Bug。

5、获取当前读写位置

tell():获取当前读写位置。

实例:

text.txt:(注意,此处该用了字母,没有汉字,用了汉字结果会怎样呢,有奖竞猜呢😀)

ABCDEFG

程序代码:

#第一次运行将会新建一个文件test.txt
file=open("text.txt","r")

print("当前位置:",file.tell())
print("读取到的数据:",file.read(3))
print("当前位置:",file.tell())
print("读取到的数据:",file.read(3))
print("当前位置:",file.tell())


#关闭
file.close()

结果:(每行后面都有换行符,所有下面结果行数之间会有空格)

当前位置: 0
读取到的数据: ABC
当前位置: 3
读取到的数据: DEF
当前位置: 6

6、定位到某个位置

seek(offset,from):用来进行定位。

offset:偏移量

from:0表示文件开头,1表示当前位置,2表示文件结尾

实例:

text.txt:(注意,此处该用了字母,没有汉字,用了汉字结果会怎样呢,有奖竞猜呢😀)

ABCDEFG

程序代码:

#第一次运行将会新建一个文件test.txt
file=open("text.txt","r")

print("当前位置:",file.tell())
print("读取到的数据:",file.read(1))
print("当前位置:",file.tell())

#将位置移动到:从文件开始的3个字节处
file.seek(3,0)
print("当前位置:",file.tell())
print("读取到的数据:",file.read(1))


#关闭
file.close()

结果:(每行后面都有换行符,所有下面结果行数之间会有空格)

当前位置: 0
读取到的数据: A
当前位置: 1
当前位置: 3
读取到的数据: D

7、文件的重命名

os模块中的rename()可以完成对文件的重命名

import os

#将text.txt重名为mark.txt
os.rename("text.txt","mark.txt")

8、文件的删除

os模块中的remove()可以完成文件删除操作

import os

os.remove("mark.txt")
    原文作者:Mark
    原文地址: https://segmentfault.com/a/1190000015995548
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞