【问题标题】:How to change permissions of multiple files using os.chmod如何使用 os.chmod 更改多个文件的权限
【发布时间】:2017-04-06 07:08:36
【问题描述】:

我有一个包含多个文件的目录(一些以 .sh 结尾的 shell、一些文本文件和一些以 .py 扩展名结尾的 python 文件)。

我想使用 os.chmod 命令为所有 shell 文件(以 .sh 结尾)添加执行权限。基本上我想这样做:

chmod +x *.sh

我尝试通过这样做首先检查权限:

>>> s = os.stat('*.ksh')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: '*.ksh'

但这行不通。 我怎样才能以pythonic方式做到这一点?

【问题讨论】:

    标签: python shell


    【解决方案1】:

    使用glob module 获取文件列表,然后遍历它们:

    import glob, os, stat
    
    for name in glob.glob('*.sh'):
        print(name, os.stat(name))
    

    并且您可以使用os.chmod() 按照this question 实际添加可执行模式位:

    for name in glob.glob('*.sh'):
        st = os.stat(name)
        os.chmod(name, st.st_mode | stat.S_IEXEC)
    

    【讨论】:

    • 忘记了 glob。谢谢本!
    猜你喜欢
    • 2019-07-06
    • 2022-08-17
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2011-12-30
    相关资源
    最近更新 更多