我有一个工作中的scrapy 2.1.0项目,在这个项目中,我把数据写到一个json文件中。
def open_spider(self, spider):
self.file = open('data/'+ datetime.datetime.now().strftime ("%Y%m%d") + '_' + spider.name + '.json', 'wb')
self.exporter = JsonItemExporter(self.file)
现在我想把它部署到scrapyd,但是由于data文件夹在tmp下不存在,所以会导致以下错误。
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scrapy/crawler.py", line 91, in crawl
yield self.engine.open_spider(self.spider, start_requests)
FileNotFoundError: [Errno 2] No such file or directory: 'data/20200518_rieger.json'
如何重写上面的代码才能在scrapyd上运行?
要创建一个文件夹,我们可以使用 mkdir
功能从操作系统模块
def make_folder(name):
try:
mkdir(name)
except FileExistsError:
pass
或者如果你不想使用 试试,您可以使用 listdir
以检查该文件夹是否存在
def make_folder(name):
if name not in listdir(path):
mkdir(name)
这对于每个需要文件夹存在的程序都是很好的。耶