Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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_File_Text Files - Fatal编程技术网

Python 将用户给定年份的平均天气数据写入文本文件

Python 将用户给定年份的平均天气数据写入文本文件,python,file,text-files,Python,File,Text Files,我有一个包含60多年气象数据的文本文件,看起来像这样:(如果它搞砸了,就复制到文本文件中!) 我想写一个函数,从这个文件中读取数据 对于一年,如果一年由用户决定,我该怎么做?然后在新文件中写入每个月FFM和TAM的平均值。我建议使用csv.DictReader()将其视为csv文件。您可以指定delimiter='\t'(如果显示的文本文件中有制表符作为分隔符而不是空格)。您可以在行中循环,使用格式为“%m.%d.%Y”的(datetime.datetime)strtime()确定适当的日期 输

我有一个包含60多年气象数据的文本文件,看起来像这样:(如果它搞砸了,就复制到文本文件中!)

我想写一个函数,从这个文件中读取数据
对于一年,如果一年由用户决定,我该怎么做?然后在新文件中写入每个月FFM和TAM的平均值。

我建议使用csv.DictReader()将其视为csv文件。您可以指定delimiter='\t'(如果显示的文本文件中有制表符作为分隔符而不是空格)。您可以在行中循环,使用格式为“%m.%d.%Y”的(datetime.datetime)strtime()确定适当的日期


输入行从第一行获取字典键,然后累积数据并使用numpy获取每组数据的平均值。您的输出文件可以使用cvs.DictWriter()和键month、FFM、TAM作为平均值。您可以使用matplotlib.pyplot按月创建值的映射,以查看它们的变化。例如,两种不同颜色的条形图。

我建议使用csv.DictReader()将其视为csv文件。您可以指定delimiter='\t'(如果显示的文本文件中有制表符作为分隔符而不是空格)。您可以在行中循环,使用格式为“%m.%d.%Y”的(datetime.datetime)strtime()确定适当的日期


输入行从第一行获取字典键,然后累积数据并使用numpy获取每组数据的平均值。您的输出文件可以使用cvs.DictWriter()和键month、FFM、TAM作为平均值。您可以使用matplotlib.pyplot按月创建值的映射,以查看它们的变化。例如,两种不同颜色的条形图。

我建议使用csv.DictReader()将其视为csv文件。您可以指定delimiter='\t'(如果显示的文本文件中有制表符作为分隔符而不是空格)。您可以在行中循环,使用格式为“%m.%d.%Y”的(datetime.datetime)strtime()确定适当的日期


输入行从第一行获取字典键,然后累积数据并使用numpy获取每组数据的平均值。您的输出文件可以使用cvs.DictWriter()和键month、FFM、TAM作为平均值。您可以使用matplotlib.pyplot按月创建值的映射,以查看它们的变化。例如,两种不同颜色的条形图。

我建议使用csv.DictReader()将其视为csv文件。您可以指定delimiter='\t'(如果显示的文本文件中有制表符作为分隔符而不是空格)。您可以在行中循环,使用格式为“%m.%d.%Y”的(datetime.datetime)strtime()确定适当的日期


输入行从第一行获取字典键,然后累积数据并使用numpy获取每组数据的平均值。您的输出文件可以使用cvs.DictWriter()和键month、FFM、TAM作为平均值。您可以使用matplotlib.pyplot按月创建值的映射,以查看它们的变化。例如,两种不同颜色的条形图。

这看起来像一个
.csv
文件,或者更具体地说是一个
制表符分隔的文件

我建议将该文件读入一些python数据格式、列表或字典, 然后在日期列中进行搜索

这个过程是:

  • 找出如何以可访问的方式存储数据
  • 提供创建此类数据集的方法
  • 提供搜索数据的方法
  • 我用字典回答了这些步骤,下面的方法是
    data\u to\u python
    ,方法是
    search\u by\u year

    下面是我的粗略尝试,测试输出

    def data_to_python(data_file_name):
        with open(data_file_name,'r') as f:
            data = []
            first = True
            for line in f:
                if first:
                    first = False
                    datanames = line.split('\t')
                else:
                    temp = {}
                    for i,item in enumerate(line.split('\t')):
                         temp[datanames[i]] = item
                    data.append(temp)
        return data
    
    def searchByYear(data,year):
        temp = []
        for entry in data:
            if entry['Dato'].endswith(str(year)):
                temp.append(entry)
        return temp
    
    我将您提供的输入放入一个名为
    test.txt的txt文件中

    样本输出:

    >>> data = dataToPython('test.txt')
    >>> searchByYear(data,1957)
        [{'FFM': '6.2', 'DD18': '170', 'DD06': '150', 'Stnr': '50540', 'DD12': '170', 'FXM':'8.8', 'Dato': '07.01.1957', 'POM': '1010.6', 'UUM\n': '94\n', 'TAM': '6.3'}, {'FFM': '7.2', 'DD18': '200', 'DD06': '160', 'Stnr': '50540', 'DD12': '160', 'FXM': '9.8', 'Dato': '08.01.1957', 'POM': '1001.8', 'UUM\n': '99\n', 'TAM': '8.0'}, {'FFM': '8.1', 'DD18': '160', 'DD06': '290', 'Stnr': '50540', 'DD12': '200', 'FXM': '13.3', 'Dato': '09.01.1957', 'POM': '990.2', 'UUM\n': '91', 'TAM': '5.7'}]
    >>> searchByYear(data,1956)
    []
    

    这看起来像一个
    .csv
    文件,或者更具体地说是一个
    制表符分隔的文件

    我建议将该文件读入一些python数据格式、列表或字典, 然后在日期列中进行搜索

    这个过程是:

  • 找出如何以可访问的方式存储数据
  • 提供创建此类数据集的方法
  • 提供搜索数据的方法
  • 我用字典回答了这些步骤,下面的方法是
    data\u to\u python
    ,方法是
    search\u by\u year

    下面是我的粗略尝试,测试输出

    def data_to_python(data_file_name):
        with open(data_file_name,'r') as f:
            data = []
            first = True
            for line in f:
                if first:
                    first = False
                    datanames = line.split('\t')
                else:
                    temp = {}
                    for i,item in enumerate(line.split('\t')):
                         temp[datanames[i]] = item
                    data.append(temp)
        return data
    
    def searchByYear(data,year):
        temp = []
        for entry in data:
            if entry['Dato'].endswith(str(year)):
                temp.append(entry)
        return temp
    
    我将您提供的输入放入一个名为
    test.txt的txt文件中

    样本输出:

    >>> data = dataToPython('test.txt')
    >>> searchByYear(data,1957)
        [{'FFM': '6.2', 'DD18': '170', 'DD06': '150', 'Stnr': '50540', 'DD12': '170', 'FXM':'8.8', 'Dato': '07.01.1957', 'POM': '1010.6', 'UUM\n': '94\n', 'TAM': '6.3'}, {'FFM': '7.2', 'DD18': '200', 'DD06': '160', 'Stnr': '50540', 'DD12': '160', 'FXM': '9.8', 'Dato': '08.01.1957', 'POM': '1001.8', 'UUM\n': '99\n', 'TAM': '8.0'}, {'FFM': '8.1', 'DD18': '160', 'DD06': '290', 'Stnr': '50540', 'DD12': '200', 'FXM': '13.3', 'Dato': '09.01.1957', 'POM': '990.2', 'UUM\n': '91', 'TAM': '5.7'}]
    >>> searchByYear(data,1956)
    []
    

    这看起来像一个
    .csv
    文件,或者更具体地说是一个
    制表符分隔的文件

    我建议将该文件读入一些python数据格式、列表或字典, 然后在日期列中进行搜索

    这个过程是:

  • 找出如何以可访问的方式存储数据
  • 提供创建此类数据集的方法
  • 提供搜索数据的方法
  • 我用字典回答了这些步骤,下面的方法是
    data\u to\u python
    ,方法是
    search\u by\u year

    下面是我的粗略尝试,测试输出

    def data_to_python(data_file_name):
        with open(data_file_name,'r') as f:
            data = []
            first = True
            for line in f:
                if first:
                    first = False
                    datanames = line.split('\t')
                else:
                    temp = {}
                    for i,item in enumerate(line.split('\t')):
                         temp[datanames[i]] = item
                    data.append(temp)
        return data
    
    def searchByYear(data,year):
        temp = []
        for entry in data:
            if entry['Dato'].endswith(str(year)):
                temp.append(entry)
        return temp
    
    我将您提供的输入放入一个名为
    test.txt的txt文件中

    样本输出:

    >>> data = dataToPython('test.txt')
    >>> searchByYear(data,1957)
        [{'FFM': '6.2', 'DD18': '170', 'DD06': '150', 'Stnr': '50540', 'DD12': '170', 'FXM':'8.8', 'Dato': '07.01.1957', 'POM': '1010.6', 'UUM\n': '94\n', 'TAM': '6.3'}, {'FFM': '7.2', 'DD18': '200', 'DD06': '160', 'Stnr': '50540', 'DD12': '160', 'FXM': '9.8', 'Dato': '08.01.1957', 'POM': '1001.8', 'UUM\n': '99\n', 'TAM': '8.0'}, {'FFM': '8.1', 'DD18': '160', 'DD06': '290', 'Stnr': '50540', 'DD12': '200', 'FXM': '13.3', 'Dato': '09.01.1957', 'POM': '990.2', 'UUM\n': '91', 'TAM': '5.7'}]
    >>> searchByYear(data,1956)
    []
    

    这看起来像一个
    .csv
    文件,或者更具体地说是一个
    制表符分隔的文件

    我建议将该文件读入一些python数据格式、列表或字典, 然后在日期列中进行搜索

    这个过程是:

  • 找出如何以可访问的方式存储数据
  • 提供创建此类数据集的方法
  • 提供搜索数据的方法
  • 我用字典、下面的方法
    data\u to\u python
    和方法
    sea来回答这些步骤