请教:如何用python强行删除windows下顽固文件

软件和网站开发以及相关技术探讨
回复
头像
nickleeh
帖子: 130
注册时间: 2008-08-06 13:24

请教:如何用python强行删除windows下顽固文件

#1

帖子 nickleeh » 2008-11-17 11:48

Windows下常常会有些顽固文件无法删除,尝试了各种办法都不行。比如,我的电脑上有个文件(可能是病毒遗留文件): ‘c:/autorun.inf'

我想写个Python脚本来删除这类文件,可是不能实现。

一下办法均失效:

代码: 全选


file = open('c:/autorun.inf','rw')
os.remove(file)

代码: 全选

os.remove('c:/autorun.inf')
请教各位是否也遇到过这种情况。有什么办法解决吗?
非常感谢!
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

Re: 请教:如何用python强行删除windows下顽固文件

#2

帖子 xhy » 2008-11-17 12:17

os.remove('c:\\autorun.inf')
目前负债150多万
头像
nickleeh
帖子: 130
注册时间: 2008-08-06 13:24

Re: 请教:如何用python强行删除windows下顽固文件

#3

帖子 nickleeh » 2008-11-17 13:13

xhy 写了:os.remove('c:\\autorun.inf')
多谢你的回复。这样也不行。我觉得原因可能是文件的系统属性问题。但不知如何解决。
Siovard
帖子: 70
注册时间: 2008-09-11 23:58

Re: 请教:如何用python强行删除windows下顽固文件

#4

帖子 Siovard » 2008-11-19 13:21

还不如进linux下直接删,windows下不用python的话,中毒的话autorun.inf其实进程或服务中有病毒关联内容,有时候删了也没用,如果只是系统属性的话,python怎么用我不知道,不过在W系统中一般可以进cmd

attrib [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[drive:] [path]filenames] [/S [/D]]

其中参数
+设置属性
-消除属性
R只读文件属性
A存档文件属性
S系统文件属性
H隐藏文件属性

[drive:][path][filename]
指定要处理的文件属性

/S处理当前文件夹及其子文件夹中的匹配文件
/D也处理文件夹

一般用-R -S -H 改完后就能对文件操作
头像
mghohoo
帖子: 364
注册时间: 2008-07-13 18:29
来自: 广州

Re: 请教:如何用python强行删除windows下顽固文件

#5

帖子 mghohoo » 2008-11-19 13:26

在linux删除~
笔记本:Acer 3820tg
台式机:
CPU:Intel E-1230V
内存:32GB RAM
显卡:660GTX
硬盘:INTEL 730 480G
头像
nickleeh
帖子: 130
注册时间: 2008-08-06 13:24

Re: 请教:如何用python强行删除windows下顽固文件

#6

帖子 nickleeh » 2008-11-20 14:09

多谢大家的回复。只是我在公司的电脑,只有windows系统。python能把文件强行删除吗?
头像
mghohoo
帖子: 364
注册时间: 2008-07-13 18:29
来自: 广州

Re: 请教:如何用python强行删除windows下顽固文件

#7

帖子 mghohoo » 2008-11-20 15:15

当然是不能……
考虑一下用光盘或者u盘启动linux
笔记本:Acer 3820tg
台式机:
CPU:Intel E-1230V
内存:32GB RAM
显卡:660GTX
硬盘:INTEL 730 480G
mana
帖子: 52
注册时间: 2008-09-25 23:49

Re: 请教:如何用python强行删除windows下顽固文件

#8

帖子 mana » 2008-11-21 22:19

或者试试这个,运行后,重启动看看是否删除了,不过有病毒的话,即使能删除,也未必完全解决了。
需要安装pywin32 (http://pywin32.sourceforge.net/)

import win32file
filename = r'c:\autorun.inf'
win32file.MoveFileEx(filename, None, win32file.MOVEFILE_DELAY_UNTIL_REBOOT)
回复