能帮尽忙改一下,能遍历子目录吗
import osif os.name == 'nt':
import win32api, win32con
def file_is_hidden(p):
if os.name== 'nt':
attribute = win32api.GetFileAttributes(p)
return attribute & (win32con.FILE_ATTRIBUTE_HIDDEN | win32con.FILE_ATTRIBUTE_SYSTEM)
else:
return p.startswith('.') #linux-osx
这个只能是当前目录,能帮改成子目录也能处理吗 本帖最后由 jackz007 于 2022-10-6 17:36 编辑
这个代码将从用户指定的目录开始,递归删除该目录及其所有子目录内文件的 Hidden 属性被置位的任何一个文件。
请务必慎重使用!!!
if os.name == 'nt':
import win32api, win32con
def file_is_hidden(p):
if os.name== 'nt':
attribute = win32api.GetFileAttributes(p)
return attribute & (win32con.FILE_ATTRIBUTE_HIDDEN | win32con.FILE_ATTRIBUTE_SYSTEM)
else:
return p . startswith('.')
q = input('请输入路径:') . strip()
if q:
for root , dirs , files in os . walk(q):
for each in files:
f = os . path . join(root , each)
if file_is_hidden(f):
os . remove(f)
print('删除文件: [%d]' % f) for d, _, fs in os.walk('.'):
for f in fs:
if file_is_hidden(f"{d}\\{f}"):
os.remove(f"{d}\\{f}")
以后代码发全 suchocolate 发表于 2022-10-6 08:33
以后代码发全
这个是完整的,你这段加到那 wgij007 发表于 2022-10-6 15:54
这个是完整的,你这段加到那
替换推导式 jackz007 发表于 2022-10-6 08:21
这个代码将从用户指定的目录开始,递归删除该目录及其所有子目录内文件的 Hidden 属性被置位的任何 ...
不知怎的,最后那句打印出错,% f 是什么意思的 本帖最后由 jackz007 于 2022-10-6 19:29 编辑
wgij007 发表于 2022-10-6 18:40
不知怎的,最后那句打印出错,% f 是什么意思的
抱歉,这一句有错,应该改为下面的样子
print('删除文件: [%s]' % f)
% 是在为前面引号中的格式描述符 %s 提供联系变量,本例提供的变量 f 是字符串,对应的格式描述符应该是 "%s" 才对。 jackz007 发表于 2022-10-6 19:25
抱歉,这一句有错,应该改为下面的样子
print('删除文件: [%s]' % f)
...
收到,感谢!这样就明白多了。
页:
[1]