Python打印文件读取结果带[字符,如何输出纯净User-Agent字符串
问题根源
- 调用
split(':')后得到的是列表类型,直接打印会输出带方括号的列表格式,不符合字符串输出要求 - 逐行读取文件时,每行末尾会自带换行符
\n,未处理就会保留在输出结果中 - 原代码中
print(agent)写在for循环外,只会打印文件最后一行的处理结果,有多行内容时会遗漏输出
修复方案
如果你的agent.txt每行本身就是完整的User-Agent字符串,不需要按冒号拆分,使用以下代码即可:
useragent_list = list() with open("agent.txt", encoding="utf-8") as file: for line in file: # 去除首尾空白、换行符,过滤空行 agent = line.strip() if agent: useragent_list.append(agent) print(agent)
如果确实需要按冒号拆分后取对应段的内容,调整代码如下:
useragent_list = list() with open("agent.txt", encoding="utf-8") as file: for line in file: line = line.strip() if not line: continue # 按冒号拆分后按需取对应索引的内容,当前场景拆分后只有一个元素,取索引0即可 agent = line.split(':')[0].strip() useragent_list.append(agent) print(agent)
修改说明
- 新增
strip()方法,自动去除每行首尾的空白字符、换行符\n - 增加空行过滤逻辑,避免无效内容存入列表
- 将打印逻辑移入for循环内部,每处理完一行就输出对应结果
- 拆分后按索引取字符串元素,避免直接打印列表带出方括号
内容的提问来源于stack exchange,提问作者ThanhVN
相关产品推荐
相关产品推荐

