如何在Windows上隐藏文件?

14

在Windows中,您可以右键单击文件,然后单击属性并选择隐藏。我如何在Python中对文件执行此操作?

3个回答

21
如果你不想或者没有访问Win32模块的权限,你仍然可以调用attrib函数。
import subprocess
subprocess.check_call(["attrib","+H","myfile.txt"])

或者使用“新的”run函数:
import subprocess
subprocess.run(["attrib","+H","myfile.txt"],check=True)

要获得完整的跨平台解决方案,请参阅Python跨平台隐藏文件

5

这是简单的方法

import os
os.system( "attrib +h myFile.txt" )

隐藏文件 '+h'

显示文件 '-h'

myFile.txt 可以是您的文件的完整路径


os.system已经过时,如果文件名中有空格,您必须保护文件名。 - Jean-François Fabre

5
如果仅适用于Windows操作系统:
import win32con, win32api

file = 'myfile.txt' #or full path if not in same directory

win32api.SetFileAttributes(file,win32con.FILE_ATTRIBUTE_HIDDEN)

7
你正在替换现有的文件属性。需要将其按位 OR 到从 GetFileAttributes 获取的现有属性中。 - Eryk Sun
1
只是想指出,win32api(来自第三方的pywin32包)仅在需要写入文件属性(如此处所做)时才需要。对于读取文件属性,标准库提供了os.stat().st_file_attributespathlib.Path.stat(),例如stat.FILE_ATTRIBUTE_HIDDEN。遗憾的是,在Windows上不可用os.chflags() - djvg
这里有一个使用内置的ctypes而不是第三方库来完成这个任务的方法: https://dev59.com/JnjZa4cB1Zd3GeqPeHSQ#19622903 - ewerybody

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接