Python跨平台隐藏文件

时间:2014-08-21 17:14:40

标签: python

在* nix中,我可以简单地将.添加到文件中以使其“隐藏”。还有一些方法可以在Windows中隐藏文件。

在python中是否有办法隐藏CROSS PLATFORM文件?

目前:

def write_hidden(file_name, data):
    file_name = '.' + file_name
    with open(file_name_, 'w') as f:
        f.write(data)

但正如我所说,这只适用于* nix系统。

1 个答案:

答案 0 :(得分:5)

你可以这样做:

import os
import ctypes

FILE_ATTRIBUTE_HIDDEN = 0x02

def write_hidden(file_name, data):
    """
    Cross platform hidden file writer.
    """
    # For *nix add a '.' prefix.
    prefix = '.' if os.name != 'nt' else ''
    file_name = prefix + file_name

    # Write file.
    with open(file_name, 'w') as f:
        f.write(data)

    # For windows set file attribute.
    if os.name == 'nt':
        ret = ctypes.windll.kernel32.SetFileAttributesW(file_name,
                                                        FILE_ATTRIBUTE_HIDDEN)
        if not ret: # There was an error.
            raise ctypes.WinError()

这尚未经过测试,但应该可以正常使用。

此外,您可能希望看到其他有助于我实施此问题的问题: