【发布时间】:2016-02-19 04:22:08
【问题描述】:
我使用以下代码:
from collections import defaultdict
import sys
import os
for doc in os.listdir('path1'):
doc1 = "path1" + doc
doc2 = "path2" + doc
doc3 = "path3" + doc
with open(doc1,"r") as words:
sent = words.read().split()
print sent
linenos = {}
with open(doc2, "r") as f1:
for i, line in enumerate(f1):
for word in sent:
if word in line:
if word in linenos:
linenos[word].append(i + 1)
else:
linenos[word] = [i + 1]
matched2 = []
for word in sent:
if word in linenos:
matched2.append('%s %r' % (word, linenos[word][0]))
else:
matched2.append('%s <does not exist>' % word)
with open(doc3,"w") as f1:
f1.write( ', '.join(matched2))
所以,我的 path1 包含 file1.title、file2.title 等文件...直到 file240.title
同样,我有 path2,其中包含 file1.txt、file2.txt 等文件......直到 tile240.txt
例如:
file1.title 将包含如下数据:
military troop deployment number need
file1.txt 将有:
foreign 1242
military 23020
firing 03848
troop 2939
number 0032
dog 1234
cat 12030
need w1212
输出:
path3/file1.txt
military 2, troop 4, deployment <does not exist>, number 5, need 8
基本上,代码获取file1.txt中存在的单词的行号,并从file1.title输入单词。它适用于单个文件,例如一次输入单个文件。但我需要为一个装满文档的文件夹完成此操作。
也就是说,它应该从 file1.title 中读取单词并从 file1.txt 中获取单词的行号,类似地,从 file2.title 中读取单词作为字符串并从 file2.txt 中获取这些单词的行号,然后等等..
问题是,我无法使用此代码读取具有不同扩展名的相同文件。我应该如何修改它以获得适当的输出?
【问题讨论】:
-
没有。我不想重命名,而是使用两个具有不同扩展名的文件来获取行号
-
当问一个关于 SO 的问题时,试着把它归结为一个简短的、自包含的例子。大部分代码和解释与你的实际问题无关。
-
对不起.. 我还在学习掌握 stackoverflow。以后我这里改一下。
标签: python python-2.7 line extract