使用Python隐藏文件夹/文件

时间:2009-02-14 13:18:58

标签: python

有没有办法用Python隐藏文件夹/文件?

我正在开展一个庞大的项目(漏洞扫描程序)。该项目创建了许多文件和文件夹。因此,问题是,有没有办法制作一个隐藏文件和文件夹的脚本?

6 个答案:

答案 0 :(得分:7)

如果您不想轻易使用pywin32,可以在标准库中使用ctypes调用SetFileAttributes。

ctypes.windll.kernel32.SetFileAttributesW(path, 2)

path必须是unicode字符串类型,因为这是SetFileAttributes的unicode版本。常数2来自this page(FILE_ATTRIBUTE_HIDDEN)。我想,没有办法从ctypes中获得漂亮的常量名称,所以你必须自己查找它们。

答案 1 :(得分:6)

import tempfile

请参阅documentation

此处“隐藏文件”表示"The file is readable and writable only by the creating user ID.",即含义为“隐藏其他用户的文件”。

答案 2 :(得分:6)

如果是适用于Windows:

http://code.activestate.com/recipes/303343/

要点: 导入win32api,win32con,os win32api.SetFileAttributes(文件名,win32con.FILE_ATTRIBUTE_HIDDEN)

如果是Unix:

filename =“。” + filename

对于文件名中的文件地址使用r作为前缀,因为地址包含反斜杠...例如r“c:... \ file”

答案 3 :(得分:1)

如果您可以将数据放在DBM样式文件中,那么您将只有一个数据文件。

http://docs.python.org/library/anydbm.html

您可以使用密钥到数据库中来代替文件名,并且可以通过索引到数据库来找到文件的内容。

这要求您的单个文件足够小,以便每次需要访问其中一部分时都能轻松完全加载。如果它们很大,那么考虑拆分它们并使用DBM密钥来访问它的块。例如,如果“example.txt”包含多行,并且您希望能够单独访问每一行,则可以将其存储为db["example.txt/l1"] ... db["example.txt/l42"]

答案 4 :(得分:1)

是。$ filename你要找的那种东西?

答案 5 :(得分:0)

有可能(至少使用linux和ext fs)打开/创建文件,并且只保留文件处理程序可用于活动进程的读/写操作,但没有其他进程可以在目录或任何地方看到该文件。< / p>

它取决于操作系统和文件系统,它很简单:

fh = open("data", "w+")
os.system("unlink data")
fh.write(sth)
...

非常易变的文件和一些棘手的解决方案,但工作正常。