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