Python开放和";“拒绝许可”;与ugo和x2B存档;rw?

Python开放和";“拒绝许可”;与ugo和x2B存档;rw?,python,linux,permissions,cron,Python,Linux,Permissions,Cron,我在RHEL7.x机器上用Python 3编写了一个脚本。在测试这个脚本时,我创建了一个函数,它将附加到同一目录中的文本文件中 如果我从本地目录ie-/pyscript.py执行脚本,一切都会正常工作 但是我试图从一个Bash脚本执行这个命令,但它似乎不能正常工作。脚本中的其他函数将执行,但追加到文本文件的最后一个函数不会执行 现在,如果我以拥有它(以及txt文件)的用户的身份从我的home dir运行脚本,则脚本会出错并出现权限错误。但是,如果我使用sudo运行脚本,它将毫无错误地完成,但是它

我在RHEL7.x机器上用Python 3编写了一个脚本。在测试这个脚本时,我创建了一个函数,它将附加到同一目录中的文本文件中

如果我从本地目录ie-
/pyscript.py
执行脚本,一切都会正常工作

但是我试图从一个Bash脚本执行这个命令,但它似乎不能正常工作。脚本中的其他函数将执行,但追加到文本文件的最后一个函数不会执行

现在,如果我以拥有它(以及txt文件)的用户的身份从我的home dir运行脚本,则脚本会出错并出现权限错误。但是,如果我使用
sudo
运行脚本,它将毫无错误地完成,但是它不会写入文本文件

我的用户在bash脚本和python脚本之间的每个dir上都有RW权限

关于为什么
sudo
或本地用户运行似乎不允许我写入文本文件,有什么想法吗

编辑

Traceback (most recent call last):
  File "ace/ppod/my_venv/emergingThreats/et_pro_watchlists.py", line 165, in <module>
    with open('etProLog.txt', 'a') as outlog:
PermissionError: [Errno 13] Permission denied: 'etProLog.txt'
回溯(最近一次呼叫最后一次):
文件“ace/ppod/my_venv/emergingThreats/et_pro_watchlist.py”,第165行,在
以open('etProLog.txt','a')作为输出日志:
PermissionError:[Errno 13]权限被拒绝:“etProLog.txt”

如果使用
打开(“filename.txt”,“mode”)
,它将在执行脚本的目录中打开该文件,而不是相对于脚本的当前目录。如果需要脚本所在目录的路径,请导入
os
模块并使用
open(os.path.dirname(os.path.abspath(_文件__))+“filename.txt”)
。权限错误是因为文件不存在;sudo会覆盖该文件,但不会执行任何操作,因为该文件不存在。

如果使用
打开(“filename.txt”,“mode”)
,它将在执行脚本的目录中打开该文件,而不是相对于脚本的当前目录。如果需要脚本所在目录的路径,请导入
os
模块并使用
open(os.path.dirname(os.path.abspath(_文件__))+“filename.txt”)
。权限错误是因为文件不存在;sudo会覆盖该文件,但不会执行任何操作,因为该文件不存在。

请显示Bash跟踪。另请参见,(U&L.SE),(SO),(AskU)等@jww我包括了回溯,我现在将查看这些资源。谢谢许可证是rw rw rw,由我的用户拥有。就像我说的,当我在同一个目录中执行时,它会工作得很好。所有父目录都是rwx rwx rwx。问题是相对路径来自当前工作目录,而不是python脚本的目录。请看下面我的答案。请显示Bash跟踪。另请参见,(U&L.SE),(SO),(AskU)等@jww我包括了回溯,我现在将查看这些资源。谢谢许可证是rw rw rw,由我的用户拥有。就像我说的,当我在同一个目录中执行时,它会工作得很好。所有父目录都是rwx rwx rwx。问题是相对路径来自当前工作目录,而不是python脚本的目录。请看下面我的答案。这就成功了!!!!谢谢,我一直在为这件事发愁!!!为什么Python报告“权限被拒绝”而不是“未找到文件”?这是那些几十年来一直无法修复的Python bug之一吗?FileNotFoundError确实发生了,这可能是RHEL的一个怪癖?就是这样!!!!谢谢,我一直在为这件事发愁!!!为什么Python报告“权限被拒绝”而不是“未找到文件”?这是那些几十年来一直无法修复的Python bug之一吗?FileNotFoundError确实发生过,这可能是RHEL的一个怪癖?