python打开目录,读取和打印文件名

时间:2014-06-28 09:05:37

标签: python

我正在尝试一个必须打开所有文本文件并阅读目录的程序,我尝试了一个程序,它从一组文本文件打印所有“颜色”,

  • 但是怎么样?

    1. 打印“文件名”,其中颜色出现在相应的文件中
    2. 打印具有颜色的相应文件的起始行和结束行........... 请帮助完成我的课程,因为我缺乏知识,我不知道如何执行

这是我的代码,它将打开并打印目录文件中的颜色。

import os
path = r'C:\Python27' 
data = {}

for dir_entry in os.listdir(path):
    dir_entry_path = os.path.join(path, dir_entry)
    if os.path.isfile(dir_entry_path):
        with open(dir_entry_path, 'r') as my_file:
            for line in my_file:
                for part in line.split():
                    if "color=" in part:
                        print part

上述程序的输出是:

color=red

但我需要将输出扩展为

color=red
Filename :abc
Start line of file : the first thing 
End line of file : the last thing

请帮助完成我的计划!答案将不胜感激。

3 个答案:

答案 0 :(得分:2)

你已经有了文件名,你可以得到这样的第一行和最后一行:

print part
print "Filename:", dir_entry_path
print "Start line of file:", list(my_file)[0]
if len(list(my_file)) > 1:
    print "End line of file:", list(my_file)[-1]

另一种选择是使用for line in my_file.readlines()

接受的答案的代码不是给出文件的第一行和最后一行,而是给出一行中的第一个和最后一个单词。如果这是你想要的,好的; - )。

答案 1 :(得分:1)

您已将文件名称设为dir_entry,如果您需要将该行中的第一个和最后一个单词拆分为变量,请说出单词,并将它们作为单词[0]和单词[-1] 。然后你只需要打印它们。 e.g:

import os
path = r'C:\Python27' 
data = {}

for dir_entry in os.listdir(path):
    dir_entry_path = os.path.join(path, dir_entry)
    if os.path.isfile(dir_entry_path):
        with open(dir_entry_path, 'r') as my_file:
            for line in my_file:
                words = line.split()
                for part in words:
                    if "color=" in part:
                        print part
                        print "File:", dir_entry
                        print 'start', words[0], '\nend', words[-1]

答案 2 :(得分:1)

l = my_file.readlines()
print l[0]
print l[-1]