一.文件
利用help(open)可以看到open()函数的定义:
>>> help(open)
Help on built-in function open in module _io:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
默认打开模式是’rt’,也就是只读和文本模式。
打开模式:
文件对象的方法:
read函数:
>>> f = open("D:\\1.txt")
>>> f
<_io.TextIOWrapper name='D:\\1.txt' mode='r' encoding='cp936'>
>>> f.read()
'abcdefghigk'
可以直接将文件对象转换为list
>>> f = open("D:\\1.txt")
>>> f
<_io.TextIOWrapper name='D:\\1.txt' mode='r' encoding='cp936'>
>>> f.read()
'abcdefghigk'
>>> list(f)
[]
>>> lines = list(f)
>>> for each_line in lines:
... print(each_line)
...
这里打印出来的f是空的,具体原因待验证。
write函数:
>>> f = open("D:\\1.txt",'w')
>>> f.write('edf')
3
os模块:
模块是包含你所定义的所有的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。
OS:Operating System操作系统
OS模块中关于文件/目录常用的函数使用方法
getcwd() 返回当前工作目录:
>>> import os
>>> os.getcwd()
'C:\\Users\\27368\\AppData\\Local\\Programs\\Python\\Python312'
chdir() 改变工作目录:
>>> os.chdir('D:\\')
>>> os.getcwd()
'D:\\'
mkdir(path) 创建单层目录,如果目录已存在抛出异常:
>>> os.mkdir('D:\\A')
>>> os.mkdir('D:\\A\\B')
remove(path) 删除文件:
os.remove('D:\\A\\B\\test.txt.txt')
rmdir(path) 删除单层目录,如果该目录非空则抛出异常:
os.rmdir('D:\\A\\B')
os.path模块
os.path模块中关于路径常用的函数使用办法
以下为函数返回True或False
getatime(file) 返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
>>> time.gmtime(os.path.getatime('D:\\1.txt'))
time.struct_time(tm_year=2024, tm_mon=7, tm_mday=7, tm_hour=6, tm_min=45, tm_sec=2, tm_wday=6, tm_yday=189, tm_isdst=0)
二.永久存储:pickle
python提供了一个标准的模块pickle,可以非常容易地将列表、字典这类复杂的数据类型存储为文件。它几乎可以把所有python的对象都转化为二进制的形式存放,这个过程称为pickling,从二进制转换回对象的过程称为unpickling。
pickling过程:
>>> import pickle
>>> my_list = [123,3,14,'小甲鱼',['another list']]
>>> pickle_file = open('D:\\my_list.pkl','wb')
>>> pickle.dump(my_list,pickle_file)
>>> pickle_file.close()
可以看到D盘下面新生成一个my_list.pkl
unpickling过程
>>> import pickle
>>> pickle_file = open('D:\\my_list.pkl','rb')
>>> my_list = pickle.load(pickle_file)
>>> print(my_list)
[123, 3, 14, '小甲鱼', ['another list']]
三.异常处理
Python标准异常总结
IndexError 索引超出序列的范围
>>> my_list = [1,2,3]
>>> my_list[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
KeyError 字典中查找一个不存在的关键字
>>> my_dict = {'one':1,'two':2,'three':3}
>>> my_dict['one']
1
>>> my_dict['free']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'free'
NameError 尝试访问一个不存在的变量
>>> fishc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'fishc' is not defined
SyntaxError Python的语法错误
>>> print'I love you'
File "<stdin>", line 1
print'I love you'
^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
>>> print('I love you')
I love you
异常处理
ry-except语句
注:try语句一旦检测到异常,剩下的语句将不会被执行,会直接找到对应的异常所对应的处理代码
异常检测模板:
try:
检测范围
except Exception[as reason]:
出现异常(Exception)后的处理代码