gpt4 book ai didi

python - 文本中的日期列表

转载 作者:太空狗 更新时间:2023-10-30 01:28:05 26 4
gpt4 key购买 nike

我有一个包含 32 篇文章的文本文档,我想找出每篇文章的日期。我观察到日期出现在每篇文章的第 5 行。到目前为止,我已经使用以下方法将文本分成 32 篇文章:

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))

我想创建一个列表,其中包含每篇文章的日期,仅月和年:enter image description here

可以看出,date是上图的格式,但有时不包括日期,例如周四。

有什么想法吗?

亲切的问候,

安德烈斯

附言。这是 16 文档的另一个示例: enter image description here

最佳答案

if 语句下使用正则表达式,您可以替换日期:

regx = re.compile(ur'(\w+\s\d{1,2},\s\d{4})\s\w{6,9}')
line = re.sub(regx, "\\1", line)

示例:

https://regex101.com/r/pJ0nZ8/1

行缓存方法:

使用 linecache模块你可以专门捕获第5行并将其写入文件;如果日期包括工作日,它将被截断。可以使用此功能做更多的事情,但我会将更详细的信息留给您。

import linecache

w = 'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'
l = linecache.getline("Aberdeen2005.txt",5)
m = [d in l for d in w]
c = '2005','2016' # years (optional)

if any(y in l for y in c): # check for years (optional)

if any(x in l for x in w):
r = [i for i,v in enumerate(m,0) if v]
l = l.replace(' '+w[r[0]],'')

with open("dates.txt", "a") as article_dates:
article_dates.write(l)

linecache.clearcache()

关于python - 文本中的日期列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34963506/

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