得到一个.dat文件,其中包含有关共享的信息.必须创建一个计算平均市场价格的模块



好的,我有以下格式的4.dat文件:

Purchase Date     Purchase Price     Shares     Symbol
25 Jan 2014           63.70            40         FB
25 Jan 2014           64.04            40         FB
25 Jan 2014           63.97            175        FB
25 Jan 2014           63.72            80         FB

需要注意的是,每一列(购买日期、购买价格、股份、符号)都用制表符(\t)分隔。此外,"2014年1月25日"仅用逗号分隔。然后是股票价格的制表符分隔,因为它在下一列,依此类推。显然还有空行。

我必须创建一个模块,读取我将放入其中的文件(该文件是4个文件的一个示例,格式相同,但价格和股票数量不同),并计算该股票的平均市场价格(价格x股票/股票总数)

所以基本上问题是如何将python指向我想要的信息。:/

到目前为止,我唯一想到的是

def averagePricePerShare(x):
   """Calculates average market price"""
    sharesdata_file=(open(x,"r")) #opens file
    sharesdata_str=sharesdata_file.read() #reads contents of file into a string
    marketavgprice=(price*shares)/totalshares

当然,在最后一行中,这些变量还没有在任何地方定义,因为我不知道如何找到它们。当然,我必须以某种方式使用.find()函数,我真的不知道。如有任何帮助,我们将不胜感激。这是我的最后手段,在论坛上寻求帮助之前,我一直在尝试自己想出一些办法。也许我只是被困了,因为我在过去的8个小时里一直在做这项任务(相当大的任务,这是最后的部分之一)

编辑:我的坏。看起来起点是使用.split()函数将所有文本拆分到有空行的地方,然后再拆分到有制表符的地方。split('\n')和.split('\t')之类的。或者可以去掉空行,然后分别处理每一行,并在.split('\t\t')处拆分行,这样我每行的购买价格为.split?如果是这样的事情,我该怎么做?

编辑2:我必须在不使用内置函数的情况下完成它。手动。我发现了如何:

first_useful_line=sharesdata_str.split('n')[2]

等等。所以现在我想我会像这个一样把这条线分成几列

firstlineprice=first_useful_line.split('t')[1]

想法?

使用csv模块读取数据,指定delimiter="t":

import csv
with open("myfile.dat", "rb") as inf:                # if Python 2.x
# with open("myfile.dat", "r", newline="") as inf:     # if Python 3.x
    incsv = csv.reader(inf, delimiter="t")
    # skip header row
    next(incsv, None)   
    # read data
    for row in incsv:
        # now do something with row!

相关内容

  • 没有找到相关文章

最新更新