Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止在Python 3中重命名文本文件?_Python_Python 3.x - Fatal编程技术网

如何防止在Python 3中重命名文本文件?

如何防止在Python 3中重命名文本文件?,python,python-3.x,Python,Python 3.x,我制作了一个程序,将文本附加到文本文件中。问题是,如果用户重命名了该文本文件,程序将创建另一个文本文件,并将文本附加到新的文本文件中。因此,我希望防止重命名原始文本文件,但允许用户仍然能够打开它。在Python3中如何实现这一点 我尝试了Ryan Schaefer answer,但在运行代码时出现以下错误:错误:PermissionError:[Errno 13]权限被拒绝如果您的代码写入文件,用户可以通过其他方式直接打开该文件,并且您希望阻止他们重命名该文件,然后,您需要使用用户权限设置获取操

我制作了一个程序,将文本附加到文本文件中。问题是,如果用户重命名了该文本文件,程序将创建另一个文本文件,并将文本附加到新的文本文件中。因此,我希望防止重命名原始文本文件,但允许用户仍然能够打开它。在Python3中如何实现这一点


我尝试了Ryan Schaefer answer,但在运行代码时出现以下错误:错误:PermissionError:[Errno 13]权限被拒绝

如果您的代码写入文件,用户可以通过其他方式直接打开该文件,并且您希望阻止他们重命名该文件,然后,您需要使用用户权限设置获取操作系统以保护它。这在很大程度上取决于您的操作系统以及文件的潜在存储位置,因此请查找您自己的系统,可能Python的
OS
sys
模块有助于应用这些安全系统


不过,作为警告,如果您试图编写健壮的软件,则应在运行时处理此类错误情况;如果用户重命名了该文件,并且该文件不再存在于您期望的位置,请重新生成该文件或正常出错。对于大多数用户可能会修补其内部的软件,每当您与代码之外的任何东西进行交互时(从磁盘读取文件绝对是“外部世界”),您需要处理该过程中的任何潜在错误。

您所需要做的就是更改文件的权限,使其成为只读文件,可以这样做:

import os
from stat import S_IREAD, S_IRGRP, S_IROTH

filename = "path/to/file"
os.chmod(filename, S_IREAD|S_IRGRP)

脚本很可能必须以管理员身份运行才能正常工作。

使用文件权限是否可以满足您的要求?如何命名/重命名脚本?告诉我们/向我们展示更多有关其发生方式的信息。我希望用户能够打开文件但不能重命名itI希望用户能够打开文件但不能重命名itI获取此错误:PermissionError:[Errno 13]权限被拒绝>脚本很可能必须以管理员身份运行才能正常工作。好的,我如何以管理员身份运行它administrator@abdulrahmanselmi你的操作系统是什么?我正在使用Windows 10