Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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_Python 3.x - Fatal编程技术网

Python 基于字符串拆分文本文件的代码无效,编译良好

Python 基于字符串拆分文本文件的代码无效,编译良好,python,python-3.x,Python,Python 3.x,我有一个包含一些数据的文本文件。文本文件中的每一行都指定一个日期,并且有多行具有相同的日期。我编写了下面的代码,根据日期将文本文件拆分为单独的文件,其中包含一些预先确定的日期 f=open(“2014 IONOSONDE.txt”,“r”) 日期=[“2014年01月20日”、“2014年01月21日”、“2014年01月22日”、“2014年01月24日”、“2014年03月31日”、“2014年04月01日”、“2014年04月02日”、“2014年04月03日”、“2014年04月04日”

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

f=open(“2014 IONOSONDE.txt”,“r”)
日期=[“2014年01月20日”、“2014年01月21日”、“2014年01月22日”、“2014年01月24日”、“2014年03月31日”、“2014年04月01日”、“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月08日”、“2014年09月22日”、“2014年09-23日”、“2014年09-26日”、“2014年11-25日”、“2014-27日”,"12-15-2014","12-16-2014","12-17-2014","12-18-2014","12-19-2014","12-20-2014","12-21-2014","12-22-2014"]
对于范围(0,34)内的i:
fw=open(str(Dates[i])+“.txt”,“w”)
对于f中的行:
如果第[i]行中有日期:
打印(行)
fw.写入(行)
fw.close()
f、 关闭()
代码编译得很好,每个文件都有,但是这些文件中没有任何数据。请让我知道我做错了什么。我是编程的绝对初学者,只要代码完成了工作,我就不在乎代码的优雅

输入文本文件如下所示:

输出文件的外观应该相同,只是它在某个特定日期(代码中提到的日期除外)。

使用以避免此类冲突:

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"]

with open("2014 IONOSONDE.txt", 'r') as f:
    for i in range(0,34):
        with open(str(dates[i])+".txt",'w+') as fw:
            for line in f:
                if dates[i] in line:
                    print(line)
                    fw.write(line)

这就是最终的效果。我必须改变for循环的位置,并删除日期中的零

日期=[“2014年1月20日”、“2014年1月21日”、“2014年1月22日”、“2014年1月24日”、“2014年3月31日”、“2014年4月1日”、“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年7日”、“2014年5月8日”、“2014年9月22日”、“2014年9月23日”、“2014年9月25日”、“2014年9月26日”、“2014年11月25日”、“2014年11月26日”、“2014年11日”、“2014年11日”、“2014年11日”、“2014年11日”、“2014年11日”、“2014年11日”、“2014年11日”、“2014年11日”12-17-2014","12-18-2014","12-19-2014","12-20-2014","12-21-2014","12-22-2014"]
对于范围(0,34)内的i:
f=打开(“2014 IONOSONDE.txt”,“r”)
打开(str(dates[i])+“.txt”,“w+”)作为fw:
对于f中的行:
y=str(日期[i])
如果y在直线上:
打印(行)
fw.写入(行)

请共享输入文件和输出文件的示例,输入文件和输出文件不一定会立即将数据刷新到磁盘。您正在多次回收fw。请在退出内部循环后移动fw.close()(这将强制数据刷新)。