python - 从 csv 文件创建新字典并将其用于多个功能
问题描述
基本上想从 csv 文件中提取值,并创建一个全局字典,我可以继续使用它来用于我的其他功能。
我不知道我在创建课程时是否使用了正确的方法,所以请耐心等待。
def spread_parse 但是,在运行函数时,会从 csv 文件中提取我想要的值。我的字典“pick”返回空白。我知道这种方法有效,因为如果我只是将函数“def spread_parse”和函数“def write”组合成一个函数,它将创建一个包含我想要的值的单独文件。问题是我想使用“pick”字典中包含的新添加的值创建其他函数,并且使用单个函数,这些值将仅限于该函数。如果我不正确,请纠正我。
import csv
class Parse:
def __init__(self, filename):
self.filename = filename
self.picks = {}
def spread_parse(self):
"""Parses csv file"""
f = open(self.filename)
csv_f = csv.reader(f)
a = []
b = []
# Add players names to players
for row in csv_f:
a.append(row[2])
# Have to repull csv file to add prices
f = open(self.filename)
csv_f = csv.reader(f)
# Add prices of each player
for row in csv_f:
b.append(row[5])
# Copy a & b lists into players and prices to remove Players,
# Names columns
players = a[1:]
prices = b[1:]
self.picks = dict(zip(players, prices))
def write(self):
# create a file name based on week
file = 'PGA_Picks23.txt'
with open(file, 'w') as f:
for key, value in self.picks.items():
picky = (key, value)
f.writelines("\n" + str(picky))
然后我继续在一个单独的文件中运行该类。
import Eh as e
e.Parse('DKSal.csv').spread_parse()
e.Parse('DKSal.csv').write()
当我运行这两个函数时,它只会返回一个空白文件。
解决方案
您正在创建两个单独的对象。您需要创建一个 Parse 对象并从中调用这两个方法:
import Eh as e
parse = e.Parse('DKSal.csv')
parse.spread_parse()
parse.write()