Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.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/python-3.x/16.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/5/url/2.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_Python 3.x - Fatal编程技术网

Python 获取命名为变量的文件行

Python 获取命名为变量的文件行,python,python-3.x,Python,Python 3.x,我有一个文件,其中包含股票代码,以新行分隔。因此,当打印文件时,它如下所示: SPY QQQ 我正在尝试使用雅虎财务模块来获取每个股票的价格。但是,我无法正确地为循环构造,以便只包含股票代码(括号和\n)。我只需要声明股票代码(var2=Share('SPY'),var2=Share('QQQ'))。任何帮助都将不胜感激。我现在的代码如下 from yahoo_finance import Share file = open('positions.txt', 'r') result

我有一个文件,其中包含股票代码,以新行分隔。因此,当打印文件时,它如下所示:

 SPY

 QQQ

我正在尝试使用雅虎财务模块来获取每个股票的价格。但是,我无法正确地为循环构造
,以便只包含股票代码(括号和
\n
)。我只需要声明股票代码(
var2=Share('SPY'),var2=Share('QQQ')
)。任何帮助都将不胜感激。我现在的代码如下

from yahoo_finance import Share

file = open('positions.txt', 'r')
result = [line.split(',') for line in file.readlines()]

for ticker in result:
    var = ticker
    var1 = str(ticker)
    #the yahoo finance functions are below
    var2 = Share(var1)
    print(var2.get_price())

问题可能来自解析
positions.txt
文件的方式。如果它真的是一个由新行分隔的tickers文本文件,那么readlines()应该给你一个类似下面的列表,并且(在一些代码清理之后),它对我很有用

>>> result = ['SPY', 'QQQ']
>>> for ticker in result:
...     var2 = Share(ticker)
...     print(var2.get_price())
...
226.58
120.87
以下是我的建议,但我需要查看您的文件示例才能确定:

from yahoo_finance import Share

with open('positions.txt', 'r') as fp:
    result = fp.readlines()

for ticker in result:
    #the yahoo finance functions are below
    var2 = Share(ticker)
    print(var2.get_price())

为什么在文件中的每一行都使用line.split(',')?我在您发布的示例文件中没有看到任何逗号,因此这是不必要的。你能发布positions.txt的确切示例吗?不客气!当您收到满意的答案时,应单击“接受”按钮(靠近答案的左上角),表示此问题已得到回答。@calico_u请注意,您在阅读文件后没有关闭该文件。