词云引用的背景图能不能指定某一个文件夹里随机的图片,并非定死的某一张?
import os
import random
from PIL import Image
current_dir = os.path.dirname(__file__)
imgs_dir = os.path.join(current_dir, 'imgs')
imgs = [os.path.join(imgs_dir, f) for f in os.listdir(imgs_dir)]
# 测试随机图片
"""
i = 0
while i < 10:
random_img = random.sample(imgs, 1)
print(random_img)
i += 1
输出结果:
['/Users/fish/PycharmProjects/fishing/imgs/3.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/3.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/3.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/2.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/3.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/3.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/2.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/1.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/1.jpeg']
['/Users/fish/PycharmProjects/fishing/imgs/2.jpeg']
"""
random_img = random.sample(imgs, 1)
# 将这个img传入给np,然后将np传入给词云即可实现,随机图片。
img = Image.open(random_img)
在你当前项目下新建一个目录imgs,将你想要随机的背景图片放在这个目录下。
1.写一个sh脚本;(记得chmod +x xxx.sh)
#!/usr/bin/sh
python run.py >>run.log
注意:python一定要用绝对路径下的python,run.py也要用绝对路径。 >>run.log 可以将log信息打印到log文件中,出错可以找到问题。
run.py 可以是你写的一个单独python文件,如果你要用spider或者crawlspider 模块,run.py可以如下(以crawlspider为例):
from scrapy import cmdline
cmdline.execute("scrapy crawl zhiwang".split())
2.定时sh脚本(crontab -e)
这个是linux自带的定时启动脚本的。具体用法如下:
cd etc/crontab (当然你直接 vi crontab -e 也可以)
具体是:minute(0-59) hour(0-23) day of month(1-31) month(1-12) day of week(0-6) sh脚本
例如:周末十二点执行脚本 0 0 * * 6 run.sh
注意:(1)同理run.sh绝对路径。
(2).0代表星期天,*代表每一个,即就是每一分钟,每一小时,每一天,每一月. * * * * * 就表示每一分钟运行一次。
(3)如果是在Linux服务器上,要注意服务器的时间和你电脑的时间可能不一致,在写代码做测试时,要注意,不然会是个大坑。
最后,来一首本死肥宅的打油小诗:
量子力学真神奇,
我不学你又如何。
人生苦短须自乐,
快乐搬砖死肥宅。
我可以使用Python中的Pillow库来实现随机选取一个文件夹内的图片作为背景。首先,需要使用Python内置的os库来获取文件夹内所有的图片文件,并将其存储在一个列表中。然后,使用random库中的choice函数来随机选择一个文件名。最后,使用Pillow库中的Image库来打开并应用被选中的图片文件作为词云背景。具体代码如下:
import os
import random
from PIL import Image
from wordcloud import WordCloud
# 获取所有图片文件名
image_dir = 'path/to/folder'
image_files = [f for f in os.listdir(image_dir) if f.endswith('.jpg') or f.endswith('.png')]
# 随机选择一个文件作为背景
background_file = random.choice(image_files)
# 使用Pillow库打开并应用图片作为词云背景
background_image = Image.open(os.path.join(image_dir, background_file))
wordcloud = WordCloud(background_color='white', mask=background_image)
这样,就可以实现词云随机选取一个文件夹内的图片作为背景了。需要注意的是,被选中的图片文件必须是jpg或png格式,且需要存储在指定的文件夹中(这个文件夹路径需要在代码中进行修改)。