gpt4 book ai didi

python - 使用每篇文章的第 5 行创建文本文件

转载 作者:行者123 更新时间:2023-12-01 04:10:47 25 4
gpt4 key购买 nike

我想创建一个文本文件,其中包含我的文本文件中 32 篇文章中每篇文章的第 5 行,名为 “Aberdeen2005.txt”。我已经使用以下方法分隔了文件的文章:

import re 
sections = []
current = []
with open("Aberdeen2005.txt") as f:
for line in f:
if re.search(r"(?i)\d+ of \d+ DOCUMENTS", line):
sections.append("".join(current))
current = [line]
else:
current.append(line)

print(len(sections))

为此,我正在尝试以下代码:

for i in range(1,500):
print(sections[i].readline(5))

但是它不起作用。有什么想法吗?

亲切的问候!

最佳答案

首先,当您执行 range(1,500) 时,这可能超出引发 IndexError 的部分范围,使用 range(len (部分)),使其始终保持正确的尺寸。

当前保留为列表可能更有利,因为无论如何它已经按行分割:

sections.append(current)

然后只需将 .readline(5) 更改为 [4] 即可从列表中获取第 4 个元素(因为索引从 0 开始,所以 idx 4 是第 5 行)所以它看起来像这样:

import re 
sections = []
current = []
with open("Aberdeen2005.txt") as f:
for line in f:
if re.search(r"(?i)\d+ of \d+ DOCUMENTS", line):
sections.append(current) #remove the "".join() to keep it split up by line
current = [line]
else:
current.append(line)

print(len(sections))

for i in range(len(sections)): #range(len(...))
print(sections[i][4]) #changed .readline(5) to [4] since .readline() only works on files

您遇到问题的原因是因为 .readline() 是文件对象上的一种方法,当它被处理到列表中时,它是一个引发 AttributeError 的字符串 因为 str 没有 .readline 方法,您可以使用以下方法将其按行分割:

sections[i].split("\n")[4]

“\n”是换行符,它可能不会出现在每行的末尾,具体取决于操作系统或其他操作(例如,如果您 .strip() 每行),但随后这些部分将仅包含可能更符合您喜好的字符串:

import re 
sections = []
current = []
with open("Aberdeen2005.txt") as f:
for line in f:
if re.search(r"(?i)\d+ of \d+ DOCUMENTS", line):
sections.append("".join(current))
current = [line]
else:
current.append(line)

print(len(sections))

for i in range(len(sections)): #range(len(...))
print(sections[i].split("\n")[4]) #changed .readline(5) to .split("\n")[4]

关于python - 使用每篇文章的第 5 行创建文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34979332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com