
第 10 章:文件操作
打开文件:
使用open()函数打开文件,它接受文件名(可以包含路径)和模式作为参数。模式包括:
读取模式(‘r’):用于读取文件内容。如果文件不存在,会抛出FileNotFoundError。例如:file = open(‘example.txt’, ‘r’)。
写入模式(‘w’):用于向文件写入内容。如果文件存在,会先清空文件内容;如果文件不存在,则创建新文件。例如:file = open(‘new_file.txt’, ‘w’)。
追加模式(‘a’):用于在文件末尾添加内容。如果文件不存在,则创建新文件。例如:file = open(‘log.txt’, ‘a’)。
二进制读取模式(‘rb’):用于读取二进制文件,如图片、音频等。例如:file = open(‘image.jpg’, ‘rb’)。
二进制写入模式(‘wb’):用于向二进制文件写入内容。例如:file = open(‘new_image.jpg’, ‘wb’)。
读取文件内容:
读取整个文件(read()方法):对于文本文件,read()方法会读取整个文件内容并作为一个字符串返回。例如:
按行读取(readline()方法):每次调用readline()会读取文件中的一行内容。常用于逐行处理文件。例如:
读取所有行(readlines()方法):readlines()会读取文件的所有行,并返回一个包含每行内容的列表。例如:
写入文件内容:
写入字符串(write()方法):对于文本文件,使用write()方法将字符串写入文件。例如:
写入多行内容:可以多次调用**write()**方法,或者使用writelines()方法(接受一个字符串列表作为参数)。例如:
关闭文件:
使用close()方法关闭文件,释放文件资源。这是一个良好的编程习惯,也可以使用with语句来自动关闭文件,例如:
在with块结束时,文件会自动关闭。
文件的定位操作(seek()和tell()方法):
tell()方法:用于获取当前文件指针的位置(以字节为单位)。例如:
seek()方法:用于移动文件指针到指定位置。它接受一个偏移量和一个可选的参考位置参数(0 表示文件开头,1 表示当前位置,2 表示文件末尾)。例如:
目录操作:
查看当前目录(os.getcwd()函数):os模块中的getcwd()函数可以获取当前工作目录。例如:
改变目录(os.chdir()函数):使用os.chdir()函数可以改变当前工作目录。例如:
创建目录(os.mkdir()函数):可以创建新的目录。例如:
删除目录(os.rmdir()函数):用于删除空目录。例如:
第 11 章:异常处理
Python 中的异常类型:
常见异常类型:
ZeroDivisionError:当进行除法运算时,除数为 0 会引发此异常。例如:1 / 0。
TypeError:当操作或函数应用于不适当类型的对象时发生。例如:“hello” + 5。
IndexError:当尝试访问列表、元组等序列中不存在的索引时引发。例如:my_list = [1, 2]; my_list[5]。
FileNotFoundError:当尝试打开不存在的文件时出现。例如:open(‘nonexistent_file.txt’, ‘r’)。
KeyError:当使用字典中不存在的键时触发。例如:my_dict = {‘key’: ‘value’}; print(my_dict[‘nonexistent_key’])。
使用try - except - finally语句来捕获和处理异常:
try块:包含可能会引发异常的代码。例如:
在这个例子中,try块中的除法运算会引发ZeroDivisionError,然后被except块捕获并处理。
except块:用于处理特定类型的异常。可以指定异常类型,也可以使用通用的except来捕获所有异常(不建议,因为可能会隐藏一些未预期的错误)。例如:
这里专门捕获FileNotFoundError异常,并在文件不存在时创建新文件。
finally块:无论是否发生异常,finally块中的代码都会执行。通常用于释放资源等操作。例如:
在这个例子中,无论读取文件是否成功,都会在finally块中关闭文件。
第 12 章:数据库交互
连接数据库(以 SQLite 为例):
使用sqlite3模块(Python 标准库)连接 SQLite 数据库。首先,使用connect()函数建立连接,例如:
这会创建一个名为example.db的 SQLite 数据库文件(如果不存在),并返回一个连接对象。
创建游标(Cursor):
游标用于执行 SQL 语句和获取结果。通过连接对象创建游标,例如:
执行 SQL 查询:
使用游标对象的execute()方法执行 SQL 查询语句。例如:
这里假设users是数据库中的一个表,fetchall()方法用于获取所有查询结果。
插入、更新和删除操作:
插入操作(INSERT语句):例如:
这里向users表中插入一条新记录,然后使用commit()方法提交事务,使插入操作生效。
更新操作(UPDATE语句):例如:
这会更新users表中name为Alice的记录的age值。
删除操作(DELETE语句):例如:
这会从users表中删除name为Bob的记录。
连接和操作其他数据库(如 MySQL、PostgreSQL):
对于 MySQL,需要安装mysql - connector - python等第三方库,然后使用类似的方式连接和操作。例如:
创建游标、执行 SQL 语句等操作与 SQLite 类似
对于 PostgreSQL,需要安装psycopg2等库,连接和操作过程也类似。
第 13 章:网络编程与并发
网络编程(Socket 编程):
创建套接字(Socket):使用socket模块创建套接字对象。例如:
这里创建了一个基于 TCP/IP 协议的流式套接字(用于可靠的面向连接的通信)。
绑定地址和端口(bind()方法):将套接字绑定到特定的 IP 地址和端口。例如:
监听连接(listen()方法):设置套接字为监听模式,等待客户端连接。例如:
这里表示最多允许 5 个客户端连接等待。
接受客户端连接(accept()方法):当有客户端连接时,accept()方法会返回一个新的套接字对象用于与客户端通信,以及客户端的地址。例如:
发送和接收数据:使用send()和recv()方法发送和接收数据。例如:
print(f"收到客户端数据: {data.decode()}")
关闭套接字:使用close()方法关闭套接字,释放资源。例如:
多线程编程:
导入threading模块:使用threading模块实现多线程。例如:
定义线程函数:线程函数是在线程中执行的代码。例如:
创建和启动线程:使用Thread类创建线程对象并启动。例如:
这里创建了一个线程来执行print_numbers函数。
线程同步(使用锁等机制):当多个线程访问共享资源时,可能需要进行同步以避免数据不一致等问题。例如,使用Lock对象:
这里lock用于保护shared_variable的更新操作。
多进程编程:
导入multiprocessing模块:使用multiprocessing模块实现多进程。例如:
定义进程函数:与线程函数类似,进程函数是在进程中执行的代码。例如:
创建和启动进程:使用Process类创建进程对象并启动。例如:
进程间通信(使用队列等方式):由于不同进程有不同的内存空间,需要使用特定的机制进行通信。例如,使用Queue:
这里process1向队列中放入消息,process2从队列中获取消息。
异步编程(如使用asyncio库):
async和await关键字:async用于定义异步函数,await用于等待异步操作完成。例如:
这里hello是一个异步函数,await asyncio.sleep(1)表示暂停执行 1 秒,在此期间可以执行其他异步任务。
运行异步函数(使用asyncio.run()等方法):例如:
这会运行hello异步函数,实现异步执行的效果。异步编程可以提高程序的并发性能,特别是在处理大量 I/O 密集型任务时。
Python浅显的学习就到这结束了,结束了吗?是新的起点。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/45711.html