Python使用requests获取GitHub raw文件写入本地出现多余空行问题求助
问题原因
该问题由跨平台换行符格式差异和Python文本写入模式的默认转换逻辑共同导致:
- GitHub上存储的代码换行符可能是Unix格式
\n,也可能是你在Windows环境提交时自带的Windows格式\r\n - Windows系统下以默认文本模式
w打开文件时,Python会自动把所有写入内容中的\n转换为Windows标准换行符\r\n。如果原始内容已经是\r\n格式,转换后会变成\r\r\n,每行末尾就多出来一个无效的回车符,最终呈现为行与行之间多了空行。
解决方法
你可以选择以下任意一种方案修复:
方案1:禁用Python的自动换行符转换
打开文件时添加newline=''参数即可,修改写入逻辑为:with open('autoupdate.py', 'w', newline='', encoding='utf-8') as file: file.write(onlineVersion)额外添加的
encoding='utf-8'参数可以避免不同系统默认编码不一致导致的特殊字符、中文乱码问题。方案2:统一换行符格式后再写入
先把获取到的文本里的所有换行符统一替换为Unix格式\n,再写入文件,避免重复转换:onlineVersion = onlineVersion.text.replace('\r\n', '\n').replace('\r', '\n') with open('autoupdate.py', 'w', encoding='utf-8') as file: file.write(onlineVersion)
内容的提问来源于stack exchange,提问作者Aethese
相关产品推荐
相关产品推荐

