1、模块
1.1、模块的创建
在python当中一个py文件就是一个模块。
- 在一个模块中引入外部模块
- import 模块名
- import 模块名 as 模块别名
模块别名是使用者来命名的
- 通过__name__可以获取当前模块的名字 ,如果当前文件(运行的文件)是主文件,它的名字是__main__。
1.2、模块的使用
首先架设演示环境我是用的是3.8版本的Python,在文件夹中创建两个py文件.
- from 模块名 import 变量 as 别名
- from 模块名 import 变量,变量,变量…
#test1.py
print(__name__)
print("I'm test1 program")
arg1 = '变量1'
arg2 = '变量2'
def f1():
s = '函数1'
return s
class Person:
def __init__(self,name):
self.name = name
def speak(self):
msg = 'Hello,I am %s' %self.name
return msg
L=Person('xiao')
- 访问模块中的变量 语法是 模块名.变量名
#test2.py
import module.test1 as t1
print(t1.arg1)
print(t1.arg2)
- 访问模块中的函数 语法是 模块名.函数名
#test2.py
import module.test1 as t1
print(t1.f1)
- 访问模块中的对象 语法是 模块名.对象名
#test2.py
import module.test1 as t1
print(t1.L)
print(t1.L.speak())
文件操作的步骤
1、打开文件
open()方法
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
file: 文件路径。
mode: 文件打开模式。
buffering: 设置缓冲(不影响结果)。
encoding: 解码或编码文件的编码的名称,仅适用于文本文件。
errors: 指明编码和解码错误时怎么样处理,适用于文本模式。
newline: 文本模式之下,控制一行的结束字符。
closefd: 传入的file参数类型。
opener: 自定义打开文件方式(使用默认None)
返回值 : 返回一个对象,这个对象就代表了当前打开的文件对象
创建一个变量来保存文件的名字
file_name = open(r'D:\Project\day15\demo.txt')
print(file_name)
常用的方法:
with open() as 变量名
这个方法操作完毕后会自动关闭文件。
2、读取文件
- open()打开一个文件,可以将文件分为2种类型;一种是纯文本文件(使用utf-8编写的文本文件);一种是二进制文件(图片、音频、视频…)。
- open()打开文件时默认是以纯文本打开;
- read()这个函数会把文件内的所有的内容全部读取出来;如果对于较大的文件,不要直接使用read(),可以为size指定一个值,这样read()会读取指定数量的字符,每一次读取都是从上次读取的位置开始读取的,如果字符的数量小于size,则会读取剩余所有的内容。
#对于小型文件
try:
file_name = open('demo.txt',encoding='utf-8')
content = file_name.read()
print(content)
file_name.close()
except Exception as err:
print(err)
#对于大型文本文件
try:
file_name = open('demo.txt', encoding='utf-8')
while True:
content = file_name.read(8)
print(content,end='')
if not content:
break
file_name.close() #关闭文件
except Exception as err:
print(err)
打开文件后一定要记得关闭文件,file_obj.close() #关闭文件。
2.1、其他方法读取文件
- readline()方法读取一行的内容。
with open('demo.txt',encoding='utf-8') as file_name:
content = file_name.readline()
print(content)
- readlines()方法读取每一行的内容储存在列表中。
with open('demo.txt',encoding='utf-8') as file_name:
content = file_name.readlines()
print(content)
往文件中写入数据
修改打开文件的模式,obj=open(file,mode=‘r’,encoding=‘utf-8’)
obj.write(内容)
- w: 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
- wb: 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
- w+: 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
- wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
- a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- a+: 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
- ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
with open('demo.txt','a',encoding='utf-8') as file_name:
file_name.write()