抓取文件将在 python 中立即可用
Scrape file to be immediately available in python
我正在使用 beautifulsoup 从一些网站上抓取 .csv 文件。然后我想在同一个脚本中立即使用它们并将它们存储起来以备后用。目前,当我抓取并保存文件时,脚本无法立即使用它,并且在尝试将 csv 作为数据框加载时返回 NoneType
错误。
我尝试使用
file_to_save.flush()
和
os.fsync(file_to_save.fileno())
无济于事。我也尝试过在打开文件 file_to_save = open(path + filename, 'wb', 0)
时不使用缓冲区,但仍然无法正常工作。
我的代码如下(res
是请求的 response.read()
):
file_to_save = open(path + filename, 'wb', 0)
file_to_save.write(res)
file_to_save.flush()
os.fsync(file_to_save.fileno())
file_to_save.close()
当我重新运行 脚本时,它在保存文件时工作,并且可以在单独的函数中加载到 df 中。关于如何使文件立即可用有什么想法吗?
我找不到满意的解决办法,以上建议均无效。
我解决这个问题的方法是将抓取的文件作为 pandas 数据帧打开,并通过 webapp 中其他地方使用的函数返回这个数据帧。该文件仍被保存并可供下次使用。
我正在使用 beautifulsoup 从一些网站上抓取 .csv 文件。然后我想在同一个脚本中立即使用它们并将它们存储起来以备后用。目前,当我抓取并保存文件时,脚本无法立即使用它,并且在尝试将 csv 作为数据框加载时返回 NoneType
错误。
我尝试使用
file_to_save.flush()
和
os.fsync(file_to_save.fileno())
无济于事。我也尝试过在打开文件 file_to_save = open(path + filename, 'wb', 0)
时不使用缓冲区,但仍然无法正常工作。
我的代码如下(res
是请求的 response.read()
):
file_to_save = open(path + filename, 'wb', 0)
file_to_save.write(res)
file_to_save.flush()
os.fsync(file_to_save.fileno())
file_to_save.close()
当我重新运行 脚本时,它在保存文件时工作,并且可以在单独的函数中加载到 df 中。关于如何使文件立即可用有什么想法吗?
我找不到满意的解决办法,以上建议均无效。
我解决这个问题的方法是将抓取的文件作为 pandas 数据帧打开,并通过 webapp 中其他地方使用的函数返回这个数据帧。该文件仍被保存并可供下次使用。