在学python的学习路上做个小笔记。
目录
一、文件的基本操作
二、文件流
三、文件目录操作
四、模块和包
文件的基本操作
打开文件
在Python中,使用内置函数open()进行文件的一些读写操作
文件操作的格式:
open(文件路径,访问模式,字符编码) 前面两个参数是必备参数,后面的字符编码是选填,但是大多数情况下都是会写上字符编码
访问模式
r 只读 打开文件进行读取,如果文件不存在则报错。
w 只写 打开供追加的文件,如果不存在则创建该文件。
a 追加 打开文件进行写入,如果文件不存在则创建该文件。
b 二进制文件
t 文本模式
+ 更新
读取文件
read() 读取文件中全部内容,返回一个字符串
readline() 读取文件中一行的内容,返回一个字符串
readlines() 读取文件中的所有内容,返回一个列表,并且文件中每一行是列表中的一个元素
例如:
1 = open ("test.txt","r")
写入/创建文件
write: 写入单行内容,每次只可以接受一个参数,且只能是字符串
例如:文件名.write("")
1.write("hello world")
writelines:写入多行内容,且在括号中用中括号[]包裹,元素用逗号隔开,向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符
例如:文件名.writelines("[]")
1.writelines([" \nnihao"])#\n是换行符
x 创建 创建指定的文件,如果文件存在则返回错误。
w+ : 打开文件,如果文件存在,会将文件删除后新建,不存在则直接新建,使用+号后,可以进行读取
r+ : 读取文件不会被清空,而且光标在最前面,使用+号后,可以写入新的内容
a+ : 文件打开后,光标在最后面,并有文件中原有的内容
删除文件
import os #os删除模块
os.rmdir("文件名")
关闭文件
通常操作完文件后,可以进行对应的关闭使用 close()
例如:
f = open('./a.txt','r',encoding='utf-8')
# print(f.read())
# print(f.readline())
print(f.readlines()) # 文件中如果有换行,就会转移为\n,与内容一起成为列表的元素
f.close() # 使用完文件进行关闭
#绝对路径:以盘符开头逐层写路径的是绝对路径
#相对路径:以当前文件目录为起点编写路径 ./代表当前目录 ../代表上层目录,注意:不写./时默认为当前目录
文件流
导入io包 : import io
StringIO() 生成字符串临时文件
BytesIo() 生成二进制临时文件
getvalue() 获取这个临时文件中保存的所有内容
例如:
import io
# 创建一个字符串临时文件
str_io = io.StringIO()
str_io.write('这是写入字符串临IO流中的内容')
# 获取临时文件中的数据->虚拟文件
print(str_io.getvalue())
# 创建一个二进制临时文件
byte_io = io.BytesIO()
byte_io.write(b'this is bytesData') # 在引号前面加个b,代表这个是二进制数据字节
print(byte_io.getvalue())
文件目录操作
import os #os模块
os.getcwd() #获取当前目录路径
os.chdir() #改变当前所有路径(切换路径)
os.listdir() #获取目录列表,默认获取的是当前目录
os.mkdir('') #创建文件夹
os.rename('','') #文件夹重命名,也支持文件重命名,前面为文件夹之前的名字,后面为新文件夹名
os.makedirs #创建多层目录
os.remove #移除文件
os.rmdir #删除目录
os.removedir #删除多层目录
os.system("cmd") #调用系统命令
os.walk #遍历文件夹
os.path #路径操作
模块和包
Python有一个可用于制作随机数的内建模块。random模块有一组如下的方法:
Python还有其它模块,如下:
-
os:提供了丰富的函数操作文件和目录,例如:os.remove()删除文件,os.rename()重命名文件,os.walk()生成目录树下的所有文件,os.system()执行shell命令等。
-
sys:用于操作Python运行时的环境,例如:sys.path返回模块的搜索路径,sys.argv返回命令行参数列表等。
-
json:用于字符串的序列化和反序列化,例如:json.dumps()将Python对象编码成JSON字符串,json.loads()将JSON字符串解码成Python对象。
-
re:用于字符串的正则表达式操作,例如:re.match()匹配字符串的开始,re.search()搜索字符串,re.findall()找到所有匹配的字符串,re.sub()替换字符串中的匹配项。
-
datetime:用于操作日期和时间,例如:datetime.datetime.now()获取当前时间,datetime.timedelta()表示两个日期或时间之间的差。
-
math:提供了基本的数学运算函数,例如:math.sqrt()计算平方根,math.log()计算自然对数。
-
random:用于生成随机数,例如:random.random()生成0到1之间的随机浮点数,random.randint()生成指定范围内的随机整数。
-
collections:提供了一些容器数据类型,例如:collections.Counter()用于计数,collections.defaultdict()用于创建带有默认值的字典。
-
urllib:用于操作URL,例如:urllib.request.urlopen()打开一个URL,urllib.parse.urlencode()将字典编码成URL参数。
-
logging:用于记录日志信息,例如:logging.basicConfig()设置日志的基本配置,logging.info()记录信息等级的日志。
-
numpy:用于科学计算的模块,提供了多维数组对象和复杂的函数,例如:numpy.array()创建数组,numpy.dot()计算数组的点积。
-
pandas:用于数据分析的模块,提供了强大的数据结构DataFrame和Series,以及对数据进行分析的函数。
-
requests:用于发送HTTP请求的模块,例如:requests.get()发送GET请求,requests.post()发送POST请求。
-
selenium:用于自动化Web浏览器的模块,可以用来进行网页的自动化测试和网页爬虫。
-
smtplib:用于发送邮件,例如:smtplib.SMTP()初始化SMTP服务器的连接,smtplib.SMTP.sendmail()发送邮件。
-
email:用于处理邮件的模块,提供了邮件对象,例如:email.message.EmailMessage()创建邮件对象,email.encoders.encode_base64()对邮件进行编码。
-
sqlite3:用于操作SQLite数据库的模块,例如:sqlite3.connect()连接数据库,sqlite3.Cursor()创建游标对象。
-
pymysql:用于连接MySQL数据库的模块,例如:pymysql.connect()连接MySQL数据库,pymysql.cursors.DictCursor()创建字典游标。
-
pymongo:用于连接MongoDB数据库的模块,例如:pymongo.MongoClient()连接MongoDB,pymongo.database.