Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建带有日期的列表_Python - Fatal编程技术网

Python 创建带有日期的列表

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() 这给了我以下

我创建了一个函数,用于提取文本文件中每篇文章的“日期”(每篇文章的第4行或第5行)。现在的挑战是创建一个只包含月份和年份的文本文件。以下是我的主要功能:

def main():
    for i in range(len(sections)): 
        print(sections[i].split("\n")[4])       
        print(sections[i].split("\n")[5])
main()
这给了我以下文本:

可以看出,日期并非存储在每一列中。此外,日期格式也各不相同:存储在原始文本第4行中的内容显示日期(前6行),而存储在第5列中的内容显示日期

理想情况下,文本文件如下所示:

  • 2005年12月

  • 2005年12月

  • 2005年12月

  • 2005年12月

  • 2005年12月

  • 2005年11月

  • 非常感谢


  • 您可以做的是构建正则表达式,从字符串中提取不同的部分,如日、年、月。然后,一旦你有了不同的组件,你就可以很容易地按照你想要的格式来排列它们,而此时写入一个文本文件是很简单的

    我想可能是这样的

    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()方法调用错误,现在应该可以正常工作了。