我正在尝试一个必须打开所有文本文件并阅读目录的程序,我尝试了一个程序,它从一组文本文件打印所有“颜色”,
但是怎么样?
这是我的代码,它将打开并打印目录文件中的颜色。
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
请帮助完成我的计划!答案将不胜感激。
答案 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]