最近,我有一个项目是将一些数据保存为csv文件并将其保存在绝对路径中。 这是我的代码。
import csv
a=[1,2,3,4,5,6,7,8,9]
with open("C:/test.csv","w") as f:
writer = csv.writer(f)
writer.writerows(a)
但它显示了一些像这样的错误
Traceback (most recent call last):
File "C:/Users/rickchen/Desktop/save1.py", line 3, in <module>
with open("C:/test.csv","w") as f:
IOError: [Errno 13] Permission denied: 'C:/test.csv'
任何高手都可以帮帮我吗?非常感谢^ _ ^
答案 0 :(得分:1)
您可能没有写入C驱动器根目录的写入权限。您可以尝试以下几种方法:
以管理员权限运行Python。这显然取决于您运行脚本的方式。例如,如果您正在启动命令提示符并在其中运行脚本,请右键单击它并选择“以管理员身份运行”。
使用Windows为您的用户帐户授予对C:\
根文件夹的写入权限。
可能确保输出文件尚未在其他应用程序中打开。
理想情况下,您应该写一个更合适的文件夹。例如,可以直接将输出写入Desktop
或Documents
文件夹。
您的脚本可以按如下方式更新:
import csv
import os
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
filename = os.path.join(os.environ["HOMEDRIVE"], os.environ["HOMEPATH"], "Desktop", "test.csv")
with open(filename, "wb") as f:
writer = csv.writer(f)
writer.writerow(a) # Or use writer.writerows([row] for row in a) for one per line
os.environ["HOMEDRIVE"]
和os.environ["HOMEPATH"]
会为您的用户提供主文件夹,添加Desktop
或Documents
会为您提供合适的路径。 os.path.join()
用于通过合适的分隔符安全地连接各个位,为您提供文件名,如:
C:\Users\Fred\Desktop\test.csv
这假设您使用的是Python 2.x
如果您使用的是Python 3.x,则只需修改文件的打开方式,以便与CSV编写器一起使用:
with open(filename, "w", newline="") as f: