python-3.x - Python 3 将随机亚洲字符附加到文件中,哪种编码是正确的?
问题描述
我正在编写一个小脚本,它获取 pip freeze 的输出并将其与旧文件进行比较。然后它将新包附加到文件的末尾。我正在 Windows 10 上开发。
奇怪的是,无论我采用哪种编码,附加随机亚洲字符的行为都不会改变。您可以在下面找到文本,我也会将输出粘贴进去。我相信输出会略有变化,但我不能确定。
谢谢你。
import subprocess, sys, os
reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze']).decode("utf-8") # run pip freeze
reqs = reqs.replace("\n", "").split("\r") # filter the newline characters
with open("../requirements.txt", "a+") as f:
old_packages = f.readlines()
f.write("\n# New Packages: Unidentified")
for line in reqs:
if line not in old_packages:
l = "\n" + line
f.write(l)
else:
continue
requirements.txt 中的输出:
┍䁻䂦臗铳螁ꊅ䁺阛蒉閅覣覆蒅┍獡楧敲㵦㌽㈮ㄮരਥ獡牴楯㵤㈽㐮㈮┍䌊捡敨潃瑮潲㵬〽ㄮ⸲ശ९㵤㈽㐮㈮┍䌊捡敨潃瑮潲㵬〽ㄮ⸲ശഽㄮ⸲ശഽㄮ ⸱റਥ㈽㈰⸰⸶〲┍挊慨㴽⸳⸰ഴ慲慭㴽ਥ橄湡潧㴽㴽⸳റਥ蕊湡潧潧挭畯瑮瑮楲楲楲潧昭汩整㵲㈽㌮〮┍搊怄杮ⵯ畧牡楤湡㴽⸲⸳രਥ蕊湡潧敲瑳牦浡睥牯㵫㌽ㄮ⸱റਥ楦楦慢敲業愭浤湩ഽ⸴⸳楦楰歰歰歰歰歰歰歰敬牯㵥ㄽ㈮⸲റਥ潧杯敬扩愭楰瀭瑹潨汣敩瑮㴽⸱〱〮┍朊浔汧ⵥ畡桴㴽⸱〲ㄮ┍服朊浔汧ⵥ㕴桀栉ⵥ㕴桀栀㐍浔汧ⵥ汣畯ⵤ潣敲㴽⸱⸴റਥ潧杯敬挭潬摵昭物獥潴敲㴽⸱⸸റਥ潧潧敬挭潬摵猭潴慲敧㴽⸱〳〵┥朊浔挲㴽⸱〳〵┥朊浔挲㴽⸰⸱രਥ潧杯敬争獥浵扡敬洭摥慩㴽⸰⸷റਥ潧杯敬灡獩挭浯潭牰琅獯㴽⸱㈵〮┍朊灲楣㵯ㄽ㌮⸱㥬祯ㄮ┍ㄮര獩牯㵴㐽慬祺漭椭捥牰砚㵹ㄽ㐮㐮㌮┍䴊牡摫睯睯㵮㌽㈮㈮┍洊捣洊捣扡㵥扡㵥扡㵥正㴽⸱⸰രਥ牰琅扯晵㴽⸳㈱㐮┍瀊慹湳㴱〽㐮㠮┍瀊慹湳ⴱ潭畤敬㵳〽㈮㠮┍瀊琅湩㵴㈽㈱㐮⸵㈽㈱㐮┴㈽㈹湳㴱〽㐮㠮┍瀊慹湳ⴱ潭畤敬㵳〽㈮㠮┍瀊箩湩㵴㈽㔮㔮㌮┲怳㊧ヮ⸵┳扪湳⸵ രਥ瀭瑵汩㵳〽瀊瑹ਥ敲留敲留㴽㴽⸲㐲㐲〮┍爊悭㴽⸴ശ⸴ശਥ楳㵸楳㵸楳㵸ㄽㄽ汭㴽⸰〱ㄮ┍甊楲整灭慱㴽⸳⸰റਥ牵汬扩㴳ㄽ㈮⸵〱┍眊慲瑰㴽⸱㈱ㄮ┍
解决方案
尝试改变
with open("../requirements.txt", "a+") as f:
至
with open("../requirements.txt", "a+", encoding = "utf-8") as f:
推荐阅读
- ruby - Ruby在ubuntu上作为服务(systemd)运行时执行系统命令
- python - Python selenium webdriver click() 无法正常工作
- django - django rest框架中的用户外键
- python - 如何使用 Python 在 Windows 中禁用触摸板?
- c++ - 来自命名管道的 ifstream - 如果有数据,则检查非阻塞
- flutter - 颤动中无法在 ExpansionTileCard 中嵌套列表
- apache-spark - Pyspark:读取包含反斜杠的 JSON 数据时出现异常
- python - 以优化的方式在列表中的双引号内拆分字符串?
- mongodb - 如何添加具有匹配文档的嵌入字段
- php - 尝试将文件插入 zip 时出现错误 500