Python 创建带有日期的列表
我创建了一个函数,用于提取文本文件中每篇文章的“日期”(每篇文章的第4行或第5行)。现在的挑战是创建一个只包含月份和年份的文本文件。以下是我的主要功能:Python 创建带有日期的列表,python,Python,我创建了一个函数,用于提取文本文件中每篇文章的“日期”(每篇文章的第4行或第5行)。现在的挑战是创建一个只包含月份和年份的文本文件。以下是我的主要功能: def main(): for i in range(len(sections)): print(sections[i].split("\n")[4]) print(sections[i].split("\n")[5]) main() 这给了我以下
def main():
for i in range(len(sections)):
print(sections[i].split("\n")[4])
print(sections[i].split("\n")[5])
main()
这给了我以下文本:
可以看出,日期并非存储在每一列中。此外,日期格式也各不相同:存储在原始文本第4行中的内容显示日期(前6行),而存储在第5列中的内容显示日期
理想情况下,文本文件如下所示:
您可以做的是构建正则表达式,从字符串中提取不同的部分,如日、年、月。然后,一旦你有了不同的组件,你就可以很容易地按照你想要的格式来排列它们,而此时写入一个文本文件是很简单的 我想可能是这样的
def main():
for s in sections:
lines = s.split("\n")
if lines[4]:
parts = lines[4].split(' ')
print(parts[0], parts[2])
if lines[5]:
parts = lines[5].split(' ')
print(parts[0], parts[2])
编辑:带数字
def main():
for number, s in enumerate(sections, 1):
lines = s.split("\n")
if lines[4]:
parts = lines[4].split(' ')
print(number, parts[0], parts[2])
if lines[5]:
parts = lines[5].split(' ')
print(number, parts[0], parts[2])
尽可能多地保留代码结构,这应该是您正在寻找的解决方案。它意味着易于阅读和理解。然而,这不是最好的解决方案,因为我们需要知道选择是什么样的,或者更好地知道输入文件是什么样的
def main():
with open('output.txt', 'w') as f:
for i in range(len(sections)):
date_row4 = sections[i].split("\n")[4].split(" ")
date_row5 = sections[i].split("\n")[5].split(" ")
print(date_row4)
print(date_row5)
month_row4 = date_row4[1]
year_row4 = date_row4[3]
month_row5 = date_row5[1]
year_row5 = date_row5[3]
if len(month_row4): # avoid to write empty lines in the output
f.write("{} {}{}".format(month_row4,year_row4,'\n'))
if len(month_row4):
f.write("{} {}{}".format(month_row5,year_row5,'\n'))
main()
移除图像,放入文本。并向我们展示
部分的外观如何?使用数据拆分文本(使用空格)并获取第一个和第三个元素-应该始终是月份和年份。感谢您的回答,它看起来非常好,但是没有用任何内容填充输出文本文件。我纠正了双写第4个月和第4个年的小错误,并将它们替换为5。我会继续写你的答案,谢谢!是的,file.write()方法调用错误,现在应该可以正常工作了。