我已经写了一些代码来使用Python下载股票价格。
所有Tickers(140+,例如BMW.DE)均无问题。
我遇到了'CON.DE'的问题。它不会保存到一个.csv文件,更奇怪的是,它打印 Dataframe 到终端没有一个print()命令。
我正在使用以下版本运行它:
- y金融0.1.77
- Pandas1.5.0
- Python 3.10.8版
import pandas as pd
import yfinance as yf
import os
curdir = os.getcwd()
def getPrice(ticker):
df = yf.Ticker(ticker).history(period ='1mo')[['Open', 'High', 'Low', 'Close', 'Volume']] #Download pricing
outputFile = os.path.join(curdir, 'Output', ticker +'.csv') #define path for output file
df.to_csv(outputFile) #export as .csv
getPrice('CON.DE') #Doesn't save df to .csv and prints df in terminal
getPrice('BMW.DE') #Saves df to .csv without issue
1条答案
按热度按时间r8xiu3jd1#
你实际上遇到了一个奇怪的问题,Windows的特殊
CON
(注意它不区分大小写)文件名基本上是重定向到控制台。问题出在文件名上。
df.to_csv("con")
会产生这种行为,所以当你在ticket ==“CON.DE”时开始剥离outputFile
的部分时,你会注意到分解CON
部分“修复”了你看到的这种不稳定行为。因此,这应该可以解决您的问题:
^上面的代码会去掉
.
,这样文件名就变成了“孔德.csv”,这样就可以正常工作了。你可以尝试一些其他更适合你的文件名,比如ticker.replace(".", "-")
-〉“CON-DE.csv”也可以正常工作,因为Windows会在文件名中插入.
,这与大多数其他字符略有不同以下链接可能对解释
CON
更有帮助: