gpt4 book ai didi

python - 在python和scrapy中命名多个文件

转载 作者:太空宇宙 更新时间:2023-11-03 19:19:49 25 4
gpt4 key购买 nike

我正在尝试使用 scrapy 从网络上抓取文件后将文件保存到目录中。我从文件中提取日期并将其用作文件名。然而,我遇到的问题是某些文件具有相同的日期,即有两个文件的名称为“2009 年 6 月 2 日”。所以,我想做的是以某种方式检查是否已经存在同名的文件,如果有,请将其命名为“June 2, 2009.1”或类似名称。

我使用的代码如下:

def parse_item(self, response):
self.log('Hi, this is an item page! %s' % response.url)

response = response.replace(body=response.body.replace('<br />', '\n'))

hxs = HtmlXPathSelector(response)

date = hxs.select("//div[@id='content']").extract()[0]
dateStrip = re.search(r"([A-Z]*|[A-z][a-z]+)\s\d*\d,\s[0-9]+", date)
newDate = dateStrip.group()


content = hxs.select("//div[@id='content']")
content = content.select('string()').extract()[0]

filename = ("/path/to/a/folder/ %s.txt") % (newDate)


with codecs.open(filename, 'w', encoding='utf-8') as output:
output.write(content)

最佳答案

您可以使用 os.listdir 获取现有文件列表并分配不会引起冲突的文件名。

import os
def get_file_store_name(path, fname):
count = 0
for f in os.listdir(path):
if fname in f:
count += 1
return os.path.join(path, fname+str(count))

# This is example to use
print get_file_store_name(".", "README")+".txt"

关于python - 在python和scrapy中命名多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10168275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com