wordpress本地视频教程,辽源网站优化,dw软件怎么制作网页视频,可以做四级听力的网站在Python中#xff0c;每个模块都有一个内置的变量 name#xff0c;用于表示当前模块的名称。当一个Python文件被执行时#xff0c;Python解释器会首先将该文件作为一个模块导入#xff0c;并执行其中的代码。此时#xff0c;__name__的值为模块的名称。
作用
模块可被导…在Python中每个模块都有一个内置的变量 name用于表示当前模块的名称。当一个Python文件被执行时Python解释器会首先将该文件作为一个模块导入并执行其中的代码。此时__name__的值为模块的名称。
作用
模块可被导入也可直接执行使一个Python脚本既可以作为一个独立的程序运行也可以被其他脚本作为模块导入。减少全局污染当脚本作为模块被导入时可以避免执行不必要的代码提高代码的整洁度和可维护性。测试代码可以编写一些测试代码只在直接运行脚本时执行而不影响作为模块导入时的行为。
使用场景
脚本和模块分离使脚本既可以独立运行也可以作为模块导入。单元测试在脚本中编写一些测试代码只在直接运行时执行。初始化资源在脚本直接运行时初始化一些资源例如数据库连接等。
示例
假设有一个Python脚本 example.py
import csv
import requests
from bs4 import BeautifulSoupdef greet(name):print(Hello, {}!.format(name))def main():# 检查命令行参数数量if len(sys.argv) 2:print(Usage: python script.py name)sys.exit(1) # 退出程序返回错误码1# 获取命令行参数中的名字name sys.argv[1]# 调用greet函数greet(name)def amazon():# 目标URLurl https://www.shanghairanking.cn/rankings/bcur/2024# 请求头模拟浏览器行为防止被服务器识别为爬虫。headers {Connection: keep-alive,Cache-Control: no-store, no-cache, must-revalidate,User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36,Accept: */*,Accept-Encoding: gzip, deflate, br, zstd,Accept-Language: zh-CN,zh;q0.9,en;q0.8,Referer: https://www.shanghairanking.cn/rankings/bcur/2024,}# 创建一个会话对象保持连接session requests.session()# 先访问一次首页模拟用户行为session.get(https://www.shanghairanking.cn)# 发送带有headers的GET请求并获取响应内容resHtml session.get(url, headersheaders).content.decode(utf-8)# 使用BeautifulSoup解析HTML内容html_soup BeautifulSoup(resHtml, html.parser)# 查找表格中的所有行all_goods_li html_soup.find(table).find_all(tr)# 打开CSV文件准备写入with open(output.csv, wb) as csvfile:# 创建一个csv.writer对象csv_writer csv.writer(csvfile)for row in all_goods_li:goods_info_list []rank row.find(div, class_ranking)img_link row.find(img)[src]name row.find(span, class_name-cn)tags row.find(p, class_tags)if name and img_link:goods_info_list.append(rank.get_text(stripTrue).encode(utf-8))goods_info_list.append(img_link)# 将name添加到列表中并转换为UTF-8编码goods_info_list.append(name.get_text(stripTrue).encode(utf-8))goods_info_list.append(tags.get_text(stripTrue).encode(utf-8))csv_writer.writerow(goods_info_list)# 如果此脚本被直接运行则执行amazon函数
if __name__ __main__:main()如果你直接运行这个脚本
python example.py world控制台会输出Hello, World!
作为模块导入如果你在另一个脚本中导入 example.py
import example
example.greet(Alice)example.amazon()则输出Hello, Alice!并执行amazon脚本。example.py 中的 if __name__ __main__: 块中的代码不会被执行因为 example.py 是作为模块被导入的其 __name__ 的值为 example而不是 __main__。
注意事项
命令行参数确保在运行脚本时提供了正确的命令行参数。编码问题确保使用正确的编码处理非ASCII字符。错误处理可以添加异常处理逻辑来捕获并处理可能出现的错误。