【发布时间】:2021-08-11 20:00:12
【问题描述】:
我创建了一个简单的程序,通过下载一个 zip 文件并使用 Python 访问其内容,从 Internet 收集一些数据。
程序下载 zip 文件并使用 ZipFile.extractall() 将其解压缩。然后我使用 Python open() 方法读取提取的文件。
我需要每天收集数据,所以在启动目录下粘贴了原程序的快捷方式,这样每次启动笔记本电脑时,程序就开始执行。
在使用python IDLE运行程序时,程序运行完美,没有错误,如图:
但是当程序在启动时自动执行时,程序作为 .exe 文件运行,并给了我权限被拒绝的错误:
使用 print() 语句,我已经逼近了产生错误的代码:
zip_file = 'C:/Users/Tirth/Downloads/'+'cm'+day+month_name+year+'bhav.csv.zip'
with ZipFile(zip_file, 'r') as zf:
zf.extractall()
file_name = 'C:/Users/Tirth/Documents/Programming/pyprojects/'+'cm'+day+month_name+year+'bhav.csv'
csv = open(file_name)
问题似乎发生在 zf.extractall() 中,但我猜访问提取文件的权限已被拒绝。
您还可以看到,我尝试在与错误中显示的目录 (C:/Windows/system32) 不同的目录 (C:/Users/Tirth/Documents/Programming/pyprojects) 中打开提取的文件
所以这就是两难境地。为什么 python.exe 文件的权限被拒绝,但使用 Python IDLE 执行时却没有,我该如何解决这个问题?
【问题讨论】:
-
您所说的 python.exe 是什么意思,您是以 .exe 还是 .py 运行脚本,另一个问题是图像中显示的错误中的 .csv 文件是什么?
-
正如我所提到的,Python IDLE 将它们作为 .py 文件执行,但程序在启动时作为 .exe 文件运行。您可以在图片中的窗口顶部看到它。 .csv 文件将是存储在与程序相同目录中的提取文件。这就是我要访问的内容。