【问题标题】:FileNotFoundError:when trying to replace existing csv fileFileNotFoundError:尝试替换现有 csv 文件时
【发布时间】:2019-01-04 19:43:58
【问题描述】:

我似乎无法让通常在另一个脚本中运行的代码在新脚本中正常运行。在代码末尾,它将查找文件是否存在,如果存在,它将替换它并将下载的文件名更改为指定的文件名,但我不断收到错误消息。知道我可能缺少什么吗?

这里是代码

database = "E:\Stock Database\Historical Data\Historical Stock List\\"

chrome_options      = webdriver.ChromeOptions()
prefs               = {'download.default_directory': database}
chrome_options.add_experimental_option(name='prefs', value= prefs)
stocks              = webdriver.Chrome(r"E:\Python Programs\chromedriver", chrome_options = chrome_options)

#Website
stocks.get(universe_data_site)

#Navigate Web Page
stocks.find_element_by_css_selector('#ui-id-4').click()
stocks.find_element_by_css_selector('#stocks > a.blue_button.factbutton').click()
stocks.find_element_by_css_selector('body > a:nth-child(3)').click()

#Download and renaiming of File
filename = 'allstocks.csv'

#removes existing file if already exists
if os.path.exists(r"%s%s"%(database,filename)) is True:
         os.remove(r"%s%s"%(database,filename))
         os.rename(r"%s"%database+ "stockfactsheet.csv ",r"%s%s"%(database,filename))
else:
        os.rename(r"%s"%database+ "stockfactsheet.csv ",r"%s%s"%(database,filename))

这是我得到的错误

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-51-6093fcfb1ff0> in <module>()
     17          os.rename(r"%s"%database+ "stockfactsheet.csv",r"%s%s"%(database,filename))
 18 else:
---> 19         os.rename(r"%s"%database+ "stockfactsheet.csv,r"%s%s"%(database,filename))

FileNotFoundError: [WinError 2] The system cannot find the file specified: 'E:\\Stock Database\\Historical Data\\Historical Stock Liststockfactsheet.csv ' -> 'E:\\Stock Database\\Historical Data\\Historical Stock Listallstocks.csv'

【问题讨论】:

    标签: python-3.x csv file-not-found


    【解决方案1】:

    您的错误消息在父目录之后没有 (a) 反斜杠:

    'E:\\Stock Database\\Historical Data\\Historical Stock Liststockfactsheet.csv '
                                                               ^
                                                               here
    

    我认为这可能是由于行中“stockfactsheet.csv”后缺少引号引起的:

    os.rename(r"%s"%database+ "stockfactsheet.csv,r"%s%s"%(database,filename))
                                                 ^
                                                 here
    

    另外,stockfactsheet.csv 末尾有一个空格,好像是你第一次打电话给os.rename

    os.rename(r"%s"%database+ "stockfactsheet.csv ",r"%s%s"%(database,filename))
                                                 ^
                                                 here
    

    如果您没有使用带有上下文突出显示功能的 IDE(我推荐 PyCharm),那么您真的应该这样做 - 一旦我的 IDE 突出显示引用问题,我就立即看到了。

    【讨论】:

    • 您能否编辑您的 OP 以反映您尝试过的内容以及遇到的错误?
    • database = "E:\Stock Database\Historical Data\Historical Stock List\\"
    • 您确定您的更改会导致 exactly 出现相同的错误,并且在封闭文件夹之后缺少反斜杠,还是错误消息现在有一个带有反斜杠的路径?查看我的编辑 - 还有另一个问题。
    • 我明白你在说什么。进行了更改,但仍然出现错误。我开始认为可能是文件下载时。完成后,它的文件名为 stockfacksheet.csv,但在进行 DL 的过程中,它的文件名为 stockfactsheet.csv.crdownload。也许这是导致问题的原因。如果您知道我如何在 DL 的 DL 之前获得正确的文件名的链接可能会有所帮助?
    • 从错误消息看来,'E:\\Stock Database\\Historical Data\\Historical Stock Liststockfactsheet.csv ' 是一个无处可去的符号链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多