我正在尝试编译我已下载并存储在本地的一些库存数据。本地存储的数据位于一个文件夹中,并且都包含未损坏的csv文件。这是我用来读取包含所有已保存的csv文件的文件夹的代码:
df = pd.read_csv('stock_dfs/{}.csv'.format(ticker.replace('.'and'-'and',','')))
当我运行我的完整程序时,股票代码BRK.B总是显示为FileNotFoundError:
FileNotFoundError: File b'stock_dfs/BRK-B.csv' does not exist
错误很有趣,因为在我的“stock_dfs”文件夹中,自动收报机被写为BRK.B,我认为熊猫读者无法识别带有'。'的自动收报机。
尝试修复此错误我添加了下面的代码,因为我认为它可能与'。'有关,但随后它变为' - ',然后变为','然后当我最终覆盖所有那些仍然给出错误信息的' - ':(我所指的'改变'是在打印错误时'BRK'和'B'之间的标点符号。)
ticker.replace('.'and'-'and',','')))
但我仍然收到FileNotFoundError:
FileNotFoundError: File b'stock_dfs/BRK-B.csv' does not exist
我查看了其他问题,例如CSV文件不存在 - pandas dataframe,但即使这样,当我提供文件夹的完整路径,甚至是BRK.B csv文件时,它也产生了与上面相同的错误。指定文件夹路径的提示没有帮助,我为我的生活无法弄清楚为什么它不断将标点符号更改为错误中的一个自动收录器,以及找不到明显存在的csv文件。
非常感谢任何帮助。
here is an image of the BRK.B file in the folder, as well as opened up in excel
答案 0 :(得分:0)
在Windows上,文件夹分隔符为\
而不是/
。
尝试以下方法:
df = pd.read_csv('stock_dfs\{}.csv'.format(ticker))
如果您想要与系统无关的分隔符,请在os.sep
之后使用import os
,或仅使用from os import sep
。
如果您想将大量符号替换为空,请尝试:
symbols = '-,.'
for c in symbols:
if c in ticker:
ticker.replace(c, '')
股票代码名称和文件名之间明显存在差异,但不知道您如何命名文件与Google的股票代码名称相比,很难猜出具体的错误。
要查找名称,您可以尝试在文件夹中找到它:
from os import listdir, getcwd
from os.path import isfile, join
print([f for f in listdir(mypath) if isfile(join(mypath, f)) and f.upper().startswith('BRK')])
这将列出以{strong> BRK 开头的mypath
文件夹中的所有文件。
而且,最后不是:
错误很有意思,因为在我的“stock_dfs”文件夹中,自动收报机被写为BRK.B,我认为熊猫读者无法识别带有'。'的自动收报机。
拥有'。'是没有错的。 (点)在文件名中,即你可以完美地拥有一个名为 some.file.with.long.name.txt.csv
的文件答案 1 :(得分:0)
我找到了这个问题。当我从维基百科获取股票代码并将其编译成csv文件时,所有使用'。'的代码。辅以''然后' - '打印时