python-3.x - 对 Python 列表中的条目执行多个步骤
问题描述
我尝试从 txt.file 加载列表,然后想对每个条目执行多个任务。不幸的是,这些任务仅在一个条目上执行,而不是全部执行。
我使用此函数从 txt.file 加载列表:
def load_dir_file():
directory = os.path.dirname(__file__)
filename = os.path.join(directory, "law_dir")
with open(filename, "r", encoding="utf-8") as fin:
dir_file = fin.readlines()
return dir_file
这是执行这些任务的代码
def create_html():
dir_lst = load_dir_file()
for dir_link_dirty in dir_lst:
dir_link = dir_link_dirty.replace('"',"").replace(",","").replace("\n","")
dir_link_code = urllib.request.urlopen(dir_link)
bs_dir_link_code = BeautifulSoup(dir_link_code, "html5lib")
h2_a_tag = bs_dir_link_code.h2.a
html_link = str(dir_link) + "/" + str(h2_a_tag["href"])
print(dir_lst)
return html_link
文本。文件现在看起来像这样:
"https://www.gesetze-im-internet.de/ao_1977",
"https://www.gesetze-im-internet.de/bbg_2009",
"https://www.gesetze-im-internet.de/bdsg_2018"
我是编程新手,可能在上面的一些非常基本的点上失败了。因此,如果您想添加一些建议,我基本上可以如何改进,我将不胜感激。
解决方案
根据您上面的评论,听起来您想要返回一个 html 链接列表,而不仅仅是一个。为此,您需要该函数来构建一个列表并让它返回该列表。你有很多事情要做create_html
,所以为了说明的目的,我把这个函数分成两个:create_html_link_list
和create_html_link
。
def create_html_link(dir_link_dirty):
dir_link = dir_link_dirty.replace('"',"").replace(",","").replace("\n","")
dir_link_code = urllib.request.urlopen(dir_link)
bs_dir_link_code = BeautifulSoup(dir_link_code, "html5lib")
h2_a_tag = bs_dir_link_code.h2.a
html_link = str(dir_link) + "/" + str(h2_a_tag["href"])
return html_link
def create_html_link_list():
dir_lst = load_dir_file()
html_link_list = [
create_html_link(dir_link_dirty)
for dir_link_dirty in dir_lst
]
return html_link_list
推荐阅读
- react-native - 如何在 react native 中获取设备的应用程序、图像和视频列表?
- qt - 为 Raspberry Pi 4 交叉编译 QtWebEngine
- python - 如何多次并行运行单个python函数
- python - 如何将变量从 ajax 发送到 FLASK python?
- java - 透明 JTextField .setOpaque(false) 不起作用
- html - 如何确定html的这些元素?
- java - 如何通过java中的方法在db中插入数据后立即在后台发送邮件
- java - 从显示 OutOfMemoryError: Java heap space 的大型 Pyspark 数据帧创建字典
- java - 用于更新 MongoDB 中的查询的 AWS Lambda Java 函数
- android - 录制视频时Camera2api在某些设备上崩溃/