处理文件名中的“ /”

时间:2018-11-19 14:47:23

标签: python

我正在尝试使用python中的scrapy保存html页面及其类别。尝试保存它们时,我希望它们具有“ WebCategory_http://whatever.com”的名称。每当我尝试使用以下代码进行操作时:

def parse(self,response):
    content = response.body
    url = response.url
    cat =  str(response.meta['cat'])
    filename = str(cat) + '_' + str(url)
    with open(filename,'wb') as f:
        f.write(response.body)

当我这样做时,会发生这种情况:

IOError: [Errno 2] No such file or directory: 'Arts_https://www.behindthevoiceactors.com/'
2018-11-19 15:43:15 [scrapy.extensions.logstats] INFO: Crawled 45 pages (at 45 pages/min), scraped 0 items (at 0 items/min)
n)

我的猜测是'/'被解释为路径的一部分,而不是文件名,是否有继续使用'/'的方式?

2 个答案:

答案 0 :(得分:0)

否,/在大多数文件系统中不是文件名的有效部分。您需要将其替换为其他字符。

答案 1 :(得分:0)

否,您不能在路径名中使用/,它是保留字符(在此系统上)。

用其他字符替换字符,例如:

filename = str(cat) + '_' + str(url).replace('/', '_')