首页 > 解决方案 > 基于字符串拆分文本文件的代码不起作用,编译正常

问题描述

我有一个包含一些数据的文本文件。文本文件中的每一行都指定一个日期,并且有多行具有相同的日期。我编写了以下代码,根据日期将文本文件拆分为单个文件,用于多个预定日期。

f=open("2014 IONOSONDE.txt", 'r')
Dates = ["01-20-2014","01-21-2014","01-22-2014","01-24-2014","03-31-2014","04-01-2014","04-02-2014","04-02-2014","04-03-2014","04-04-2014","04-22-2014","04-23-2014","04-24-2014","04-25-2014","05-05-2014","05-06-2014","05-07-2014","05-08-2014","09-22-2014","09-23-2014","09-24-2014","09-25-2014","09-26-2014","11-25-2014","11-26-2014","11-27-2014","12-15-2014","12-16-2014","12-17-2014","12-18-2014","12-19-2014","12-20-2014","12-21-2014","12-22-2014"]
for i in range(0,34):
    fw=open(str(Dates[i])+".txt",'w')
    for line in f:
        if Dates[i] in line:
            print(line)
            fw.write(line)
fw.close()
f.close()

代码编译得很好,并且制作了单独的文件,但是这些单独的文件中没有任何数据。请让我知道我做错了什么。我是一个绝对的编程初学者,只要能完成工作,我并不真正关心代码的优雅。

输入文本文件如下所示: 输入文件

输出文件应该看起来相同,只是它只限于一个特定日期(来自代码中提到的日期)。

标签: pythonpython-3.x

解决方案


这最终奏效了。我必须更改 for 循环的位置以及删除日期中的零。

dates = ["1-20-2014","1-21-2014","1-22-2014","1-24-2014","3-31-2014", "4-1-2014","4-2-2014","4-2-2014","4-3-2014","4-4-2014","4-22-2014","4-23-2014","4-24-2014","4-25-2014","5-5-2014","5-6-2014","5-7-2014","5-8-2014","9-22-2014","9-23-2014","9-24-2014","9-25-2014","9-26-2014","11-25-2014","11-26-2014","11-27-2014","12-15-2014","12-16-2014","12-17-2014","12-18-2014","12-19-2014","12-20-2014","12-21-2014","12-22-2014"]
for i in range(0,34):
    f=open("2014 IONOSONDE.txt",'r')
    with open(str(dates[i])+".txt",'w+') as fw:     
        for line in f:
            y=str(dates[i])
            if y in line:
                print(line)
                fw.write(line)

推荐阅读