我想创建一个文件并在 python 中写入一些整数数据。例如,我有一个变量 abc = 3,我试图将它写入一个文件(该文件不存在,我假设 python 会自行创建它):
fout = open("newfile.dat", "w")
fout.write(abc)
首先,python 会自己创建一个 newfile.dat 吗?其次,它给了我这个错误:
IOError: [Errno 13] Permission denied: 'newfile.dat'
这里有什么问题?
我想创建一个文件并在 python 中写入一些整数数据。例如,我有一个变量 abc = 3,我试图将它写入一个文件(该文件不存在,我假设 python 会自行创建它):
fout = open("newfile.dat", "w")
fout.write(abc)
首先,python 会自己创建一个 newfile.dat 吗?其次,它给了我这个错误:
IOError: [Errno 13] Permission denied: 'newfile.dat'
这里有什么问题?
如果文件在您的计算机上仍然打开,请关闭该文件,然后尝试运行 python 代码。我希望它有效
当您尝试创建与目录同名的文件时,也会发生这种情况:
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'
像这样使用 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')
权限被拒绝仅意味着系统无权将文件写入该文件夹。从终端使用“sudo chmod 777”授予文件夹权限并尝试运行它。它对我有用。
我用 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,D,F ...),只有当路径设置在磁盘中时
C:\\
将获得权限被拒绝错误。所以我认为这是windows中的保护路径,以避免python脚本更改或读取系统磁盘(磁盘C)中的文件
回答您的第一个问题:是的,如果文件不存在,Python 将创建它。
其次,运行 python 脚本的用户(您自己)没有在目录中创建文件的写入权限。
如果您通过终端执行 python 脚本 --user 以提供管理员权限。
为我工作!
如果您使用的是 Windows,请以管理员身份运行该文件。
如果您通过 cmd 执行,请以管理员身份运行 cmd 并执行 python 脚本。
为了使用 Python 脚本写入文件,您必须先创建一个文本文件。示例 应该存在 C:/logs/logs.txt 等文件。只有这样,以下代码才有效:
logfile=open(r"C:/logs/logs.txt",'w')
所以总结。
- 文本文件应存在于指定位置
- 确保在运行 Python 脚本之前关闭文件。
确保您对尝试按属性创建文件的目录具有写入权限