美文网首页
Python文件操作,看这篇就足够!

Python文件操作,看这篇就足够!

作者: 途途途途 | 来源:发表于2021-08-01 11:57 被阅读0次

文件的存储方式

在计算机中,文件是以二进制的方式保存在磁盘上的文本文件和二进制文件

文本文件可以使用文本编辑软件查看本质上还是二进制文件

二进制文件保存的内容不是给人直接阅读的,而是提供给其她软件使用的二进制文件不能使用文件编辑软件查看

文件基本操作

在计算机中要操作文件一共包含三个步骤:1.打开文件2.读、写文件

读 将文件内容读入内容写 将内存内容写入文件

模式描述

t文本模式 (默认)。

x写模式,新建一个文件,如果该文件已存在则会报错。

b二进制模式。

+打开一个文件进行更新(可读可写)。

U通用换行模式(不推荐)。

r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。

r+打开一个文件用于读写。文件指针将会放在文件的开头。

rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

文件打开模式有很多,但是我们实际用到的就只有六种。

我们总结一下主要用到的是下面六种

模式可做操作若文件不存在是否覆盖文件原来内容

r只读报错——

r+可读、可写报错是

w只写创建是

w+可读、可写创建是

a只写创建否,追加写

a+可读、可写创建否,追加写

只读模式打开文件——只读(r)

# 1.只读模式打开文件

file = open('read.txt')

# 2. 读取文件内容

text = file.read()

print(text)

# 3.关闭文件

file.close()

'''

Hello world

123456

python

'''

文件若不存在报错:

读写模式打开文件——读写模式(r+)

# 1.打开文件

f = open('read.txt', 'r+')

# 2. 写入文件并且读取文件内容

f.write('666666')

text = f.read()

print(text)# 3.关闭文件f.close()

'''

world

123456

python

666666666666

'''

数据写入之前:

数据写入之后:

会替换掉相同长度的内容

文件若不存在报错:

写模式打开文件——写模式(w)

# 1.只写模式打开文件

f = open('read.txt', 'w')

# 2. 写入文件

f.write('abcdefg')

# 3.关闭文件

f.close()

print('数据写入完毕!')

'''

数据写入完毕!

'''

数据写入之前:

数据写入之后:

这种操作会删除原来的文件内容,重新写入Python,

并且把光标放在文件最开始。

若文件不存在,系统会创建该文件夹并重新写入内容

读写模式打开文件——读写模式(w+)

# 1.读写模式打开文件

f = open('read.txt', 'w+')

# 2. 写入文件

for i in f:

    print(i)

f.write('python! ')

# 3.关闭文件f.close()

print('数据写入完毕!')

'''

数据写入完毕!

'''

数据写入之前:

数据写入之后:

这种操作会删除原来的文件内容,重新写入Python,

并且把光标放在文件最开始。

若文件不存在,系统会创建该文件夹并重新写入内容

利用这个原理所以文件写模式(w)、读写模式(w+)还可以用作删除文件内容。

因为他们整个工作原理就是把文件原来的内容删除,然后写入新的内容。

如果我们写入的内容为空,那么不就是删除文件内容。

# 1.读写模式打开文件

f = open('read.txt', 'w+')

# 3.关闭文件

f.close()

print('什么都不执行!')

'''

什么都不执行!

'''

数据写入之前:

数据写入之后:

写模式打开文件(追加内容)——写模式(a)

'''

# 1.写模式打开文件

f = open('read.txt', 'a')

# 2. 写入文件内容

f.write('ppppppppppppp')

# 3.关闭文件

f.close()

print('代码执行结束!')

'''

代码执行结束!

'''

数据写入之前:

数据写入之后:

可以看到是在原先内容的基础上在文末追加新的内容!

若文件不存在,系统会创建新的文件夹并写入内容

读写模式打开文件(追加内容)——读写模式(a)

# 1.读写模式打开文件

f = open('read.txt', 'a+')

# 2. 写入文件内容

f.write('WWWWWWWWW')

# 3.关闭文件

f.close()

print('代码执行结束!')

'''

代码执行结束!

'''

数据写入之前:

数据写入之后:

可以看到是在原先内容的基础上在文末追加新的内容!

若文件不存在,系统会创建新的文件夹并写入内容

二进制模式打开文件

我们看到了在文件打开模式中有以下模式:rb、wb……有这种带 b 的。

什么意思呢?

就是用二进制的方式打开文件。

# 1.读写模式打开文件

f = open('img.png')# 

2. 写入文件内容

for i in f:

    print(i)

print('代码执行结束!')

# 3.关闭文件

f.close()

'''

UnicodeDecodeError: 'gbk' codec can't decode byte 0xb8 in position 19: illegal multibyte sequence

'''

很明显,我们出现了以下错误:

UnicodeDecodeError: 'gbk' codec can't decode byte 0x82 in position 0: incomplete multibyte sequence

主要原因是因为编码的问题,可能是因为0x82这个字节在gbk编码中没有这个字符,

可能原字符是两个字节,在gbk里被解析成了一个字节,导致字符不存在。

这就是我们文件打开方式需要使用二进制读取的原因。

# 1.读写模式打开文件

f = open('img.png', 'rb')

# 2. 写入文件内容

for i in f:

    print(i)

print('代码执行结束!')

# 3.关闭文件

f.close()

'''

代码执行结束!

'''

文件操作

open 函数负责打开文件,并且返回文件对象

read /write / close 三个方法都需要通过文件对象 来调用

# 1.打开文件

file = open("read.txt")

# 2. 读取文件内容

text = file.read()

print(text)

# 3.关闭文件

file.close()

文件和文件夹的操作

在Python中⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能,

具体步骤如下:

导⼊os模块

import os

使⽤ os 模块相关功能

1、文件重命名

os.rename(⽬标⽂件名, 新⽂件名)

import os# 重命名文件os.rename('read.txt', 'new_read.txt')

print('重命名成功!')

'''

重命名成功!

'''

2、删除文件

os.remove(⽬标⽂件名)

import os# 删除文件os.remove('new_read.txt')

print('删除成功!')

'''

删除成功!

'''

3、创建文件夹

os.mkdir(⽂件夹名字)

import os# 创建文件夹os.mkdir('read.txt')

print('新文件夹创建成功!')

'''

新文件夹创建成功!

'''

4、删除文件夹

os.rmdir(⽂件夹名字)

import os# 删除文件夹os.rmdir('read.txt')

print('文件删除成功!')

'''

文件删除成功!

'''

5、获取当前目录

os.getcwd()

import os

print(os.getcwd())

'''

E:\python\project++\文件操作

'''

6、改变默认目录

os.chdir(⽬录)

import os

os.chdir('E:\python\project++')

print(os.getcwd())

'''

E:\python\project++

'''

7、获取目录列表

os.listdir(⽬录)

import os

print(os.listdir('E:\python\project++'))

'''

['.idea', 'college', 'Daily test', 'mult_xiangqin', 'pandas技巧', 'travel_summer', '动图获取', '匿名函数', '打针', '文件操作', '汉服小姐姐', '猫眼_动态网站', '王思聪语录', '瓜子二手车', '网易文胸', '腾讯招聘', '萌妹子', '虎牙']

'''

相关文章

  • Python文件操作,看这篇就足够!

    文件的存储方式 在计算机中,文件是以二进制的方式保存在磁盘上的文本文件和二进制文件 文本文件可以使用文本编辑软件查...

  • 14.Python之文件操作

    Python之文件操作 文件操作通过Python中的内置函数open()对文件进行操作。文件操作需要如下几个参数:...

  • Python实现从文件中读取指定行的方法

    这篇文章主要介绍了Python3实现从文件中读取指定行的方法,涉及Python中linecache模块操作文件的使...

  • 第二节课:Python 操作文件 ——软件测试派

    学习目标:掌握 python 操作文件 python 提供内置函数 open()实现对文件的操作。 python ...

  • Python遍历目录并操作文件

    今天来使用python操作文件,包括根据模式查找文件、删除文件操作。 完整代码托管在python/find...

  • 解析Python中的文件操作

    1.简介 在Python中无需引入额外的模块来进行文件操作,Python拥有内置的文件操作函数(除了内置文件操作函...

  • Python 文件操作

    一. Python 读写 创建文件 Python中对文件,文件夹(文件操作函数)的操作需要涉及到OS 模块和 sh...

  • Python

    Python 创建文件 Python 对数据库进行操作--增删改查 Python 对csv进行操作 Python ...

  • python常用文件操作总结

    python 移动文件或文件夹操作。python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法...

  • python--文件的基本操作

    python编程中,文件是必不可少的。下面我们来学习python中文件的基本操作。 文件的基本操作: 在pytho...

网友评论

      本文标题:Python文件操作,看这篇就足够!

      本文链接:https://www.haomeiwen.com/subject/comqvltx.html