# 文件保存路径 file_path = './test' create_file(file_path) # 获取图片 for i in img_list: try: img_url = i.xpath('./@src')[0] except: img_url = i.xpath('./@data-src')[0] # 文件名称 file_name = f'{file_path}/page_{cnt}.jpg' print(file_name, img_url) # 下载保存图片 resp = requests.get(img_url) with open(file_name, 'wb') as f: f.write(resp.content) cnt += 1修改这部分代码,使得存储文件名和路径分开来
时间: 2024-03-21 22:40:46 浏览: 67
要将存储文件名和路径分开来,可以在 `file_path` 和 `file_name` 中分别使用不同的变量来构造。具体来说,可以定义一个变量 `file_dir` 来存储文件夹路径,再根据当前图片序号 `cnt` 构造出文件名 `file_name`,然后将 `file_dir` 和 `file_name` 合并起来得到完整的文件路径。
修改后的代码如下:
```python
# 文件保存路径
file_dir = './test'
create_file(file_dir)
# 获取图片
cnt = 0
for i in img_list:
try:
img_url = i.xpath('./@src')[0]
except:
img_url = i.xpath('./@data-src')[0]
# 文件名称
file_name = f'page_{cnt}.jpg'
print(file_name, img_url)
# 下载保存图片
resp = requests.get(img_url)
file_path = os.path.join(file_dir, file_name) # 合并文件路径
with open(file_path, 'wb') as f:
f.write(resp.content)
cnt += 1
```
这样,存储文件名和路径就被分开来了,文件名和路径的构造也更加清晰易懂。
相关问题
# 文件保存路径 file_path = './test' create_file(file_path) # 获取图片 for i in img_list: try: img_url = i.xpath('./@src')[0] except: img_url = i.xpath('./@data-src')[0] # 文件名称 file_name = f'{file_path}page_{cnt}.jpg' print(file_name, img_url) # 下载保存图片 resp = requests.get(img_url) with open(file_name, 'wb') as f: f.write(resp.content) cnt += 1
这段代码的作用是遍历一个图片列表 `img_list`,并下载其中的图片到指定的文件夹 `./test` 中。具体来说,代码首先创建了一个文件夹 `./test`,然后遍历 `img_list` 中的每个图片元素,获取该图片的下载链接 `img_url`。然后根据当前图片的序号 `cnt` 拼接出一个本地文件名 `file_name`,并使用 `requests` 库下载该图片的二进制数据,最后将二进制数据保存到本地文件中。
需要注意,如果 `img_list` 中的某个元素没有 `src` 属性,而是使用了 `data-src` 属性来存放图片链接,那么代码会先尝试获取 `src` 属性,如果不存在则获取 `data-src` 属性。此外,变量 `cnt` 在代码中没有定义,可能是在代码的其他地方定义的。
阅读全文