python基础语法(工程向)-Stage2

文件操作

文件读取

使用open(file_name,mode,encoding)函数来进行操作
file_name代表要打开的文件的名称(字符串格式),也可以加上文件所在的路径
mode:打开文件的模式,可以是:只读,写入,追加
encoding:编码格式(例如UTF-8),注意encoding需要用关键字传参

file = open('C:file_name','r',encoding = "UTF-8")

这里使用了file接收了文件,这里fileopen()函数的文件对象

在这里我们写入路径的时候会用到\,而如果你想要他作为字符出现就需要\\,十分的麻烦
我们可以利用python的原始字符串(raw string),只要在字符串前加上r或者R,就可以实现\作为字符

file = open(r'C:\Users\17591\Desktop\CODES\TEXT\py_open.txt','r',encoding = "UTF-8")
p = file.readlines()
print(p)

三种模式

只读:r用只读模式打开文件,文件的指针会放在文件的开头
写入:w打开文件并只用于写入,如果这个文件存在就打开文件,并且从头开始编辑,之前的内容全部删除,如果不存在就创建一个文件
追加:a如果文件存在则在文件后面写入新内容,不存在则创建新文件

读操作相关方法

file.read(num),读取文件中num长度,如果不传入则读取全部文件
每次read会记录下读到的位置,下一次read会接着上一次的位置往后

file = open(r'C:\Users\17591\Desktop\CODES\TEXT\py_open.txt','r',encoding = "UTF-8")
print(file.read(5))
print(file.read())

# result
abcde
fghigklmnopqrstuvwxyz

file.readlines()按行读取整个文件中的内容,并且返回一个列表
这个方法也会和read相同,从上一次的位置继续,并且可以和read联动起来
并且该方法可以读取到换行符

file.readline()一行行的读取,一次读一行,该方法不会读取到换行符

for循环在读取文件时会按行循环

file.close()关闭文件对象,关闭对文件的占用

with open(file_name,mode) as f:
	f.readlines()

逐行操作
with open语法可以在操作完成之后自动关闭文件

写入操作相关方法

file.write(...)文件写入操作
在python中运行文件时,write会把写入操作的内容先载入缓冲区(存在于python程序的内存中)

file.flush()内容刷新操作
调用flush之后,就会把缓冲区的写入内容真正吸入文件中,并且file.close()操作自带了file.flush的功能

追加操作相关方法

方法与写入操作相同,只需要把open的模式改为a

异常

捕获异常

在python中可以实现捕获异常,如果某一行命令出现了bug,可以自动替换为另一行代码

try:
	可能错误的代码
except:
	出现错误时运行的代码

并且对于异常捕获还可以进行指定错误种类

try:
	可能错误的代码
except error_type as e:
	出现错误时运行的代码

如果想要通过第二种语法来捕获全部异常

try:
	可能错误的代码
except Exception as e:
	出现错误时运行的代码

同时也可以同时捕获多种错误,只需要把他们存储到元组当中

try:
	可能错误的代码
except (error_type1,error_type2):
	出现错误时运行的代码

同时也可以再加上没有异常时候运行的代码

try:
	可能错误代码
except error_tpye as e:
	出现错误运行的代码
else:
	print('无错误')

同时也可以加上无论有无异常都要执行的代码

try:
	...
except error_typq as e:
	...
else:
	...
finally:
	...

异常可以通过函数等的嵌套进行传递

模块

模块的导入语法

[from 模块名] import [模块//变量/函数/*] [as 别名]

import运用

# 导入模块
import 模块名
import 模块名1,模块名2

# 使用模块
模块名.功能()

例如:

import time

time.sleep(1)

以上便是导入整个模块,但是也可以导入模块中的某一项

# 导入
from 模块名 import 功能名

# 使用
功能名()

例如:

from time import sleep

sleep(1)

# 导入模块中所有方法
from 模块名 import *

# 使用
功能名()

例如

from time import *

sleep(1)

和直接import的区别只在于使用方法时的格式不同


as设置别名

# 导入并设置别名
import 模块名 as 别名
from 模块名 import 功能 as 别名

自定义模块

制作模块只需要新建一个.py文件,在其中写入函数等,然后在另外一个文件直接import该文件的名称就可以了。
如果调用的模块中有相同的名字的函数(没有直接使用import的时候),那么就会出现后面引用的模块的函数覆盖掉了前面引用的模块的函数

如果在自定义的模块中调用了函数,那么引用模块的时候会把该函数执行
使用以下语句,可以使在主函数引用模块的时候不会触发代码,但是在运行该模块的时候会触发

if __name__ == '__main__'
	...

__all__存储的是列表,当写上__all__并且使用from ... import *的时候,只有存储到__all__里面的函数会被导入

__all__ = ['func1']

def func1():
	...

def func2():
	...

python包

是一个文件夹,里面存放着多种模块,并且有__init__.py文件,本质上还是模块。
__init__.py是一个空的文件,所以在vscode中创建包也可以自己直接创建,不需要pycharm的创建功能

在使用的时候,也是直接import 包名.模块名
使用的时候就是包名.模块名.目标


__all__在包中也有运用,可以写到__init__.py文件中,同样也是作为一个列表,写入指定的模块名,当使用from ... import *的时候,不在列表中的模块不会被引用

安装第三方包

只需要在cmd界面通过pip install 包名进行安装
也可以详细加上网址,来实现通过国内网站进行安装pip install -i 网址 包名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值