我创建了以下在linux上运行的简单python脚本 - python ver 2.X
#!/usr/bin/python
def GetListfiles():
LS = (commands.getstatusoutput(" ls "))
return LS
AA = GetListfiles()
for filename in AA:
print "------------"
print filename
运行我的脚本后,我得到了这个输出:
file.txt
file1.txt
file2.txt
为什么我没有得到像这样的输出?
------------
file.txt
------------
file1.txt
------------
file2.txt
我需要在代码中更改哪些内容?
答案 0 :(得分:3)
您需要拆分文件名。
commands.getstatusoutput(" ls ")
返回一个元组 - 两个看起来像这样的项目:
(0, 'filename.txt\nfilename1.txt\nfilename2.txt')
所以它再次打印-----
然后0
,-----
,然后是字符filename.txt\nfilename1.txt\nfilename2.txt
,如下所示:
--------------
0
--------------
filename.txt
filename1.txt
filename2.txt
因此,要在每个之间获得一行,请执行以下操作:
def GetListfiles():
LS = (commands.getstatusoutput(" ls "))
return LS
AA = GetListfiles()
AA = AA[1].split('\n')
for filename in AA:
print "---------------"
print filename
要检查文件名是否包含文本txt
,请执行以下操作:
for filename in AA:
print "---------------"
if "txt" in filename:
print filename
答案 1 :(得分:1)
这将完成您在纯Python中的意图:
import glob
filenames = glob.glob('*')
for filename in filenames:
print "------------"
print filename