python文件操作和模块_python文件处理和导入模块

本文详细介绍了Python中文件的读取和写入操作,包括使用open函数的不同模式(如'r'、'w'、'a'),以及read、readline、readlines等方法。此外,还讲解了如何使用with语句来更安全地管理文件,确保文件在使用后能够自动关闭。最后,提到了模块和包的导入方式。
摘要由CSDN通过智能技术生成

一、读取文件

1.打开文件

open(文件名,打开文件的模式,encoding="UTF-8") 打开一个文件

注意点:

被打开的文件和当前文件在同一路径下,可以写文件名

被打开的文件和当前文件不在同一路径下,可以写绝对路径,

但是在写绝对路径时,记得 open(r"C:\Users\Administrator\PycharmProjects\untitled1\aaa.txt", "r", encoding="UTF-8")

转义r,

# 一般情况,如果开头打开了,那么结尾就要关闭 open与close是一对

f = open("aaa.txt", "r")#content = f.read()#print(content) # 报错,是编码的原因 'gbk' codec can't decode byte 0x9f in position 12: illegal multibyte sequence

#1.打开

f1 = open("aaa.txt", "r", encoding="UTF-8")#2.读取所有的内容

content_1 =f1.read()print(content_1) #hello python 最好的语言是python

#3.关闭文件

f.close() # 前面有open,那么结尾就得加上close

2.读取文件

read():读取文件中所有的内容

readline():每次读取一行内容

readline()按行把所有的内容,读取到一个列表中,每一行都是列表中的一个元素

#1.打开

f = open(r"C:\Users\Administrator\PycharmProjects\example\day_01\abc.txt", "r", encoding="UTF-8")#2.读取内容#第一种方式:read()读取所有的内容

content =f.read()print(content)#第二种方式:readline()每次读取一行内容

content1 =f.readline()#print(content1) # 默认读取第一行

print('1', content1) #打印文件中第一行内容

print('2', f.readline()) #打印文件中第二行内容

print('3', f.readline()) #打印文件中第三行内容#

## 假设我要读取3行,怎么读取?读取指定行数

for i in range(3):print(f.readline())#第三种方式:readlines()按行把所有的内容,读取到一个列表中,每一行都是列表中的一个元素

content3 =f.readlines()print(content3)#如果读取第七行的内容

c7 = f.readlines()[6]print(c7)#3.关闭文件

f.close()

二、写入文件

r:只读模式(read),如果文件不存在则会报错

w:写入模式(write),覆盖写入(会清楚原来的内容)如果文件不存在则会自动创建

a:写入模式(append),追加写入(在原有文件的尾部,写入新的内容),如果文件不存在则会自动创建

***扩展另外三种:

# 通常用来读取非文本模式(图片、表格、)

rb:只读模式(read),以二进制模式打开的,如果文件不存在则会报错

wb:写入模式(write),以二进制模式打开的,覆盖写入(会清楚原来的内容)如果文件不存在则会自动创建

ab:写入模式(append),以二进制模式打开的,追加写入(在原有文件的尾部,写入新的内容),如果文件不存在则会自动创建

#打开

f = open("aaa.txt", "w", encoding="utf-8")#写入内容

f.write("123456789")#关闭

f.close()print("----------------------------------------------------")#打开

f = open("aaa.txt", "a", encoding="utf-8")#写入内容

f.write("wuefbevjnklsdjcubjk")#关闭

f.close()#图片的复制

f1 = open("Devops.png", "rb") # 先读取

f2= open("copy_image.png", "wb")

con=f1.read()

f2.write(con) # 再写入

f1.close()

f2.close()

三、with操作文件

通过上下文管理器with去打开文件,操作完之后会自动关闭文件

with open("Devops.png", "rb") as f:

con=f.read()

with open("002.png", "wb") as f2:

f2.write(con)

我们在写python代码时,一般都是这种with去操作文件,对文件进行处理,因为方便好用,用的多

四、模块和包

模块:在python中,只要是以.py结尾的文件都可以称之为模块

包:包含了一个一个_init_.py文件的文件夹就可以称之为python的一个包

模块导入:

import 模块名

from 包名(如果存在多级嵌套的情况) import 模块名

(如果存在多级嵌套的情况,需要一级一级往下找)

导入模块中的某个函数或者变量:

from 模块名 import 变量名/函数

from 包名.模块名 import 变量名/函数

from xxx import xxx as 别名 (这个也常用!!!)

#模块导入#方式一:导入整个模块

importtest01#方式二、导入模块中的部分内容

from test01 importaprint(a)#这个波浪线并不是代码写错了,pycharm识别不出我们自定义的这个模块

from test01 importwork

work()#扩展#通过as给导入进来的方法或者变量重新起个名字(别名)#work也可以被叫做w1,如果两个方法或者函数名有重名的时候可以使用as,不然导入的数据会被覆盖掉

from test01 importwork as w1

w1()#同时导入模块中的多个方法和函数和变量

from test01 importa,work,numprint(a)print(num)#导入模块中所有的内容(不推荐使用)

from test01 import *

print(a)print(num)

work()#包导入#from 包名 import 模块名#from 包名.模块名 import 模块中的变量或方法#from pack01 import module1

module1.m_func1()print(module1.aa)print(module1.bb)from pack01.module1 importaa,bbprint(aa)print(bb)

其实,说了这么多,几乎就是这两条:

模块导入

方式一:import 模块名

方式二:from 模块名 import 模块中的变量或者函数

包导入:

方式一:from 包名 import 模块名

方式二:from 包名.模块名 import 模块中的变量或者函数

或者再在后面as别名

关于python中包导入的搜索路径

import sys

sys.path

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值