我想创建一个文件并在python中写一些整数数据。例如,我有一个变量abc = 3,我试图将它写入一个文件(它不存在,我假设python将自己创建):
fout = open("newfile.dat", "w")
fout.write(abc)
首先,python会自己创建一个newfile.dat吗?其次,它给了我这个错误:
IOError: [Errno 13] Permission denied: 'newfile.dat'
这里有什么问题?
答案 0 :(得分:5)
Please close the file if its still open on your computer, then try running the python code. I hope it works
答案 1 :(得分:4)
当您尝试创建与目录同名的文件时,也会发生这种情况:
import os
conflict = 'conflict'
# Create a directory with a given name
try:
os.makedirs(conflict)
except OSError:
if not os.path.isdir(conflict):
raise
# Attempt to create a file with the same name
file = open(conflict, 'w+')
结果:
IOError: [Errno 13] Permission denied: 'conflict'
答案 2 :(得分:2)
回答你的第一个问题:是的,如果文件不存在,Python会创建它。
其次,运行python脚本的用户(你自己)没有写入权限来在目录中创建文件。
答案 3 :(得分:1)
我使用cmd(windows命令行)就像这个
一样C:\Windows\System32> "G:\my folder\myProgram.py"
python文件里面有这样的东西
myfile = open('myOutput.txt', 'w')
错误是当你不使用完整路径时,python将使用你当前的目录,因为cmd上的默认目录是
C:\Windows\System32
这不起作用,因为它似乎写保护并且需要许可&管理员确认
相反,您应该使用完整路径,例如:
myfile = open('G:\my folder\myOutput.txt', 'w')
答案 4 :(得分:1)
我用IDLE3.8(python 3.8.0)编写python脚本
我已经解决了这个问题:
如果路径是
shelve.open('C:\\database.dat')
这将是
PermissionError: [Errno 13] Permission denied: 'C:\\database.dat.dat'
。
但是当我测试将路径设置为
shelve.open('E:\\database.dat')
那没问题!!!
然后,仅当在磁盘中设置路径
C:\\
将显示权限被拒绝错误。 因此,我认为这是Windows中的保护路径,以避免python脚本更改或读取系统磁盘(磁盘C)中的文件
答案 5 :(得分:0)
确保您对尝试按属性创建文件的目录具有写入权限
答案 6 :(得分:0)
如果您通过终端传递--user执行python脚本以提供管理员权限。
为我工作!
如果您使用的是Windows,请以管理员身份运行文件。
如果通过cmd执行,请以admin身份运行cmd并执行python脚本。
答案 7 :(得分:0)
权限被拒绝仅表示系统没有权限将该文件写入该文件夹。从终端使用“ sudo chmod 777”授予该文件夹权限,然后尝试运行它。它对我有用。
答案 8 :(得分:0)
要使用Python脚本在文件上进行写入,必须首先创建一个文本文件。 示例应该存在诸如C:/logs/logs.txt之类的文件。 只有这样,以下代码才能起作用:
logfile=open(r"C:/logs/logs.txt",'w')
总结。
- 文本文件应位于指定位置
- 确保在运行Python脚本之前关闭文件。