很容易发现人们在问如何做这件事,但从我所知道的情况来看,从来没有一个答案适用于我。我只想创建一般的权限,以便写入子目录中的新文件。在python内部,我调用
filename = 'dfs_err_results/err_results_st'+str(station_id)
file = open(filename,'w')
pickle.dump(results, file)
file.close()但它在open()和IOError: [Errno 13] Permission denied: 'dfs_err_results/err_results_st5'上都失败了。如果我使用sudo python输入,这个错误不会发生,但是必须记住这一点,并且必须在有大量进程的sudo ps x中检查进度,这是很烦人的。
我是否正确,没有办法用chmod改变未来文件的子目录?或者在python脚本中没有设置权限的代码行?
谢谢!
发布于 2015-03-29 23:03:05
是的,它确实使用sudo执行命令。对于exmaple,在打开文件之前,可以更改它的写权限。做你想做的事,然后换回你的许可。现在,我还没有手动使用linux,可以尝试这样的方法:
subprocess.call(['/usr/bin/sudo', 'chmod', '777', filename])
with open(filename) as file:
pickle.dump(results, file)发布于 2015-03-30 06:07:17
这主要是由xmp贡献的,但它确实需要多一行才能创建文件:
subprocess.call(['/usr/bin/sudo', 'touch', filename])
subprocess.call(['/usr/bin/sudo', 'chmod', '777', filename])
file = open(filename,'w')
pickle.dump(results, file)
file.close()谢谢你的帮助!
发布于 2016-01-06 16:15:24
我就是这么干的:
os.chmod(filename, stat.S_IRWXO | stat.S_IRWXG | stat.S_IRWXU)
with open(filename, 'w') as f:
pickle.dump(i, f)这为您可以通过更改stat模式:chmod.htm来选择所需权限提供了完全的权限。
https://stackoverflow.com/questions/29335486
复制相似问题