Python 检索拆分文本中的下一行
我试过Python 检索拆分文本中的下一行,python,text,Python,Text,我试过line2=next(iter(line)) 但它并没有产生我想要的结果。由于我已经将文本语料库拆分成了新行,我希望像next(iter(line))这样的东西能够起作用。所以我想要的是得到它循环的代码行,但也要在“行”之后得到一行 使用索引访问列表 for root, dirs, files in os.walk(path): for file in files: print(os.path.join(d, file)) for i in
line2=next(iter(line))
但它并没有产生我想要的结果。由于我已经将文本语料库拆分成了新行,我希望像next(iter(line))这样的东西能够起作用。所以我想要的是得到它循环的代码行,但也要在“行”之后得到一行 使用索引访问列表
for root, dirs, files in os.walk(path):
for file in files:
print(os.path.join(d, file))
for i in xrange(0, len(files)):
for files[i] in files:
corpus = open(os.path.join(d, files[i]), 'rb')
corpus = corpus.read()
# corpus = [line.lstrip() for line in corpus.split("\n")]
lne = []
# print(lne)
for line in corpus.split("\n"):
line = re.sub(' +', ' ', line)
line = line.upper()
lne.append(line.lstrip())
这里的i
是介于0
和行数-2
之间的值。因此,在循环中,您可以访问:
for root, dirs, files in os.walk(path):
for file in files:
print(os.path.join(d, file))
for i in xrange(0, len(files)):
for files[i] in files:
corpus = open(os.path.join(d, files[i]), 'rb')
corpus = corpus.read()
lne = []
lines = corpus.split("\n")
for i in xrange(0, len(lines) - 1):
line = re.sub(' +', ' ', lines[i])
line = line.upper()
lne.append(line.lstrip())
line2 = lines[i+1]
我从两个文件开始: 1.text
line = lines[i]
line2 = lines[i + 1]
this + that
then now
和两个。文本
line = lines[i]
line2 = lines[i + 1]
this + that
then now
。。。在文件夹“C:\scratch\sample\two.txt”
中
我想提到的主要问题是,Python中提供了一种相对较新的处理文件和文件夹内容的方法,即模块pathlib
,该模块在第11章中有介绍。它通常使生活更容易
science poetry
pigs + cows
我理解你的意思是,你想用一个空格替换出现的“+”,并把整行变成大写
我还想提到:(a)最好避免使用像file
这样的名称,这些名称在Python语言中可能是(也可能不是)特殊的词,因为使用它们会使调试变得困难,(b)当你打开一个文件时,最好将与一起使用,因为当你将的作用域与一起离开时,系统会安排关闭该文件,并且(c)我发现使用pathlib
的一个讨厌之处是必须使用类似str
的东西来产生结果(在这种情况下,文件名
)将其转换为open
可以使用的文件名
我希望这是有用的信息。您需要在列表中保留一个参考,但您没有这样做。您甚至不应该创建列表,您应该使用上下文管理器获取对文件处理程序的引用,然后直接迭代文件对象谢谢您的建议,我将尝试实现它;)令人敬畏的绝地武士,愿原力与你同在:D.对不起,你一定得到了那么多,呵呵