python_文件及os操作

1、文件操作方法

打开文件 open 函数
你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。

读取文件 read()

read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

写入 write()方法

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

write()方法不会在字符串的结尾添加换行符('\n'):

关闭 close()方法

File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。

当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。

# 打开文件
file = open("new_file.txt", 'r', encoding='utf-8')

# 读取数据
data = file.read()
print(data)


#关闭文件
file.close()

2、文件操作模式指南

模式rr+ww+aa+
++ + +
 +++++
创建  ++++
覆盖  ++  
指针在开始++++  
指针在结尾    ++
模式描述
t文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

3、文件写入

 在 w 模式下,如果之前没有这个文件,将会创建新文件
 写入中文需要指定编码格式为 utf-8, GBK
 TODO: 坑1:如果之前已经存在同名文件,使用 mode='w' 模式,会覆盖之前的文件内容。
 mode = 'a', 追加模式
 mode = 'x', 原创模式,独创模式
 mode = 'b', 二进制模式,  't'文本

 

file = open('new_file.txt', mode='a', encoding='utf-8')

# 写入数据
file.write("英文太多,我记不住")

# 关闭文件
file.close()


f = open('new_file.txt','r',encoding='utf-8')

data = f.read()

print(data)

#打印结果:ICO小组正在探讨文件操作,请大家仔细听讲英文太多,我记不住

 

4、什么是模块?模块的作用?

模块:.py 文件就是模块。【实际上 .pyc  .pyo pyd  so  dll, 】动态库
什么是包:包含了 __init__.py 的模块的文件夹(目录)

模块和包的作用:就是为了组织代码。

 

 

5、文件路径常用操作

# 第一种
import os.path
# 第二种方式
from os import path
# os.path 主要处理系统路径相关的操作。


# 第一种
import os.path


# 第二种方式
from os import path
# os.path 主要处理系统路径相关的操作。


# 获取文件的绝对路径
# 什么是绝对路径??  从系统的盘符或者是系统根目录开始,
# 相对路径。  一个路径相对于另一个路径的说法。
# D:  D:\班级管理

# 用得最多的是 os.path.abspath(__file__)
# 因为绝对路径不会变


print(os.path.abspath(__file__))   #demo_02_os,   class12_路径处理类和对象\demo_02_os.py

# __file__
# __name__
print(__file__)     # 文件路径(相对)
print(__name__)   #模块名,没有路径


# 获取现在的文件绝对路径
file_path = os.path.abspath(__file__)
print("filepath", file_path)

# 获取上一级路径
dir_name = os.path.dirname(file_path)



# 路径拼接  文件  /  文件
# 所有获取到的路径,只是一个路径的表示,并不代表这个文件或者路径真的存在。
# 说白了:路径得到的是一个字符串。这个字符串是一个路径格式 `\` ,
txt_path = os.path.join(dir_name,  'demo.txt' )


with open(txt_path, 'w') as f:
    f.write("new txt file")


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


# 创建一个新的目录(文件夹)
if not os.path.exists("subdir"):
    print(os.mkdir('subdir'))


# 判断一个路径存不存在
# print(os.path.exists("d:\olg"))

# 判断路径是否是一个文件
# 获取到的路径得到是一个字符串。

print(os.path.isfile(os.getcwd()))
print(os.path.isdir(os.getcwd()))


6、模块导入

模块.demo_01_什么是模块.visit('')


from 模块 import demo_01_什么是模块
demo_01_什么是模块.visit('')
demo_01_什么是模块.respose()

# from ++++ import ++++
from 模块.demo_01_什么是模块 import visit, respose
visit('')

# 导入所有的
from 模块.demo_01_什么是模块 import *
visit('')
respose()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值