通过使用CSV作为数据集的终端运行Python脚本

时间:2017-01-19 19:37:12

标签: python csv unix matplotlib terminal

我有一个python脚本导入MatPlotLib并绘制股票价格。

import sys
import matplotlib.pyplot as plt

vals = [float(line.split(',')[7]) for line in sys.stdin]

plt.plot(vals)
plt.title('Stock Price Data')
plt.ylabel('Adjusted Closing Price')
plt.xlabel('Trading Day')
plt.show()

我想通过导入名为2015_goog_sorted.csv(2015年Google股票价格,已排序)的文件作为要排序的值,在终端中运行此脚本。

我在Mac上使用Atom

我在使用unix和终端学习命令的过程中,但我知道应该有一个相对简单的方法来做到这一点。

提前致谢:)

2 个答案:

答案 0 :(得分:0)

  1 import csv
  2
  3 with open('test.csv','r') as f:
  4     a = csv.reader(f)
  5     for row in a:
  6         print(row)

输出

wirelessprv-10-194-17-39:python Bobby$ python3 te.py
['1', '1', '1', '1']
['2', '2', '2', '2']

你可以对行做任何事情

答案 1 :(得分:0)

如果您只是想按原样运行脚本,可以硬编码输入文件的路径:

import sys
import matplotlib.pyplot as plt
import csv

with open('/path/to/2015_goog_sorted.csv', 'r') as f:
    reader = csv.reader(f)
    vals = [float(row[7]) for row in reader]

plt.plot(vals)
plt.title('Stock Price Data')
plt.ylabel('Adjusted Closing Price')
plt.xlabel('Trading Day')
plt.show()

如果您想使用unix样式管道发送输入,您可以执行以下操作:

import sys
import matplotlib.pyplot as plt
import csv


reader = csv.reader(sys.stdin)
vals = [float(row[7]) for row in reader]

plt.plot(vals)
plt.title('Stock Price Data')
plt.ylabel('Adjusted Closing Price')
plt.xlabel('Trading Day')
plt.show()