如何将Python文件下载解压重命名脚本存为.py运行及相关疑问
Python自动化脚本实操解答
针对你提出的三个问题,逐一解答如下:
1. 如何将脚本保存为.py文件运行
按以下步骤操作:
- 打开任意文本编辑器(记事本、VS Code、PyCharm都可以)
- 把你的代码复制进去,先修正两处语法问题:
- 把
import os移到代码最开头(原代码先调用os.chdir再导入os会直接报错) - 路径里的
\要改成\\或者加原始字符串前缀r,避免转义符冲突
- 把
- 点击「文件」→「另存为」,文件名设为类似
geodata_auto.py,后缀必须是.py,保存类型选「所有文件」,编码选UTF-8 - 运行方式:
- 双击.py文件(前提是Python已添加到系统环境变量)
- 打开终端(PowerShell/CMD),cd到脚本所在目录,输入
python geodata_auto.py(Python3环境可能用python3或py)
修正后的完整可运行代码:
import os from urllib.request import urlretrieve import zipfile # 切换工作目录,用原始字符串避免转义问题 os.chdir(r"C:\Pythonfolder\Geodata") url = "https://ext-dokument.lansstyrelsen.se/gemensamt/geodata/ShapeExport/lst.Riks_slutforvaring.zip" filename = "Slutforvaring.zip" urlretrieve(url, filename) # 拆分多行更易读,运行时无需手动回车 with zipfile.ZipFile(filename, "r") as zip_ref: zip_ref.extractall("ZIP, Riksintresse Slutförvaring") # 重命名文件,同样用原始字符串处理路径 os.rename(r"ZIP, Riksintresse Slutförvaring\lst.Riks_slutforvaring.gpkg", r"Länsstyrelserna, Riksintresse Slutförvaring.gpkg")
2. 解决with zipfile.ZipFile...命令的回车问题
交互环境中需要回车是因为你在一行输入了with语句,需要手动确认代码块结束。但写成.py文件时,只要语法正确:
- 要么像你原来那样把代码写在同一行(
with ...: zip_ref.extractall(...)) - 要么像上面修正后的代码那样拆成多行,保证缩进正确
运行.py文件时,Python会自动执行整个代码块,完全不需要手动按回车。建议用多行写法,可读性更强,也不容易出错。
3. 能否在PowerShell和Python终端中运行该.py文件
可以,但不要同时运行同一个脚本进程(会导致文件读写冲突,比如同时下载同一个zip、同时重命名文件)。分开运行的方式:
- PowerShell:cd到脚本所在目录,执行
python geodata_auto.py - Python交互式终端:
- 先cd到脚本目录(用
os.chdir(r"脚本所在路径")) - 然后执行
exec(open("geodata_auto.py").read()) - 如果是IPython环境,也可以用
runfile("geodata_auto.py")
- 先cd到脚本目录(用
内容的提问来源于stack exchange,提问作者kaj.n
相关产品推荐
相关产品推荐

