许多人花上数小时点击鼠标和敲打键盘,执行重复的任务,却没有意识到,如果他们给机器正确的指令,机器就能在几秒钟内完成他们的工作。
2024年04月20日
OS模块作为一个常用的库,学习一下是非常有必要的。
os模块是Python内置的一个与操作系统交互的模块,它提供了一种使用操作系统相关功能的便捷方法。通过os模块,可以实现许多与文件和目录相关的操作,如文件的创建、删除和重命名,以及目录的创建、删除和遍历等。
2024年04月20日
题目如下:
代码如下:
import os
def get_input():
sitename = input("Site name: ")
author = input("Author: ")
jsfolder = input("Do you want a folder for JavaScript?(y or n)")
csfolder = input("Do you want a folder for CSS? (y or n)")
return sitename,author,jsfolder,csfolder
def mkdir(dir):
if not os.path.exists(dir):
os.makedirs(dir)
print("Created {0}".format(dir))
else:
print("--- There is this folder!---{0}".format(dir))
def name_text(sitename,author,jsfolder,csfolder):
dir = os.getcwd() + '/{0}/'.format(sitename)
mkdir(dir)
filename = dir+'index.html'
file = open(filename,'w')
file.write(" <title> {0} </title> \n <meta> {1} </meta> ".format(sitename,author))
file.close()
if jsfolder == 'y':
jsfolder = dir + 'js/'
mkdir(jsfolder)
if csfolder == 'y':
csfolder = dir + 'css/'
mkdir(csfolder)
return 0
if __name__ == '__main__':
sitename,author,jsfolder,csfolder = get_input()
name_text(sitename,author,jsfolder,csfolder)
2024年04月20日
随着最新的 Pythorc1.3 版本的发布,下一代完全重写了它以前的目标检测框架,新的目标检测框架被称为 Detectron2。本教程将通过使用自定义 coco 数据集训练实例分割模型,帮助你开始使用此框架。如果你不知道如何创建 coco 数据集,请阅读我之前的文章——如何创建自定义 coco 数据集用于实例分割。
2024年04月20日
大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示。刚入门的读者千万不要错过!
2024年04月20日
作者:冰蓝的天空
原文:http://www.cnblogs.com/binglansky/p/8483096.html
环境: python 2.7 + win10
2024年04月20日
如下图,根据“科室”的唯一值将数据拆分到不同的Excel文件,保存路径为“D:/Samples/ch04/01 数据拆分/根据变量的值拆分到不同工作簿”。新文件的名称类似“科室1.xlsx”。
2024年04月20日
#encoding=utf-8
'''
pic合成movie
'''
import os
import imageio
from PIL import Image
#encoding=utf-8
import os
import logging
import datetime
logging.basicConfig(level=logging.INFO,format='%(asctime)s - %(name)s -%(levelname)s -%(message)s')
log = logging.getLogger(__name__)
class FileOprate():
def __init__(self,obsfn,fp,fn,create_time,update_time,access_time,file_size):
self.obsfn = obsfn
self.fp = fp
self.fn = fn
self.create_time = create_time
self.update_time = update_time
self.access_time = access_time
self.file_size = file_size
def time2str(time):
return str(datetime.datetime.fromtimestamp(time)).split('.')[0]
def getAllFiles(folder):
fo_list = []
for root,folder_names,file_names in os.walk(folder):
for file_name in file_names:
file_path = root + os.sep + file_name
file_stat = os.stat(file_path)
ct = file_stat.st_ctime
ut = file_stat.st_mtime
at = file_stat.st_atime
fs = os.path.getsize(file_path)
fo = FileOprate(file_path,root,file_name,ct,ut,at,fs)
fo_list.append(fo)
return fo_list
def suo_tu2(path,save_path,width=224,height=224):
raw_files = os.walk(path)
for root,dirs,files in raw_files:
log.info("遍历图片信息:{}".format(root))
for file in files:
pic_path = os.path.join(root,file)
pic_org = Image.open(pic_path)
#pic_new = pic_org.resize((width,height),Image.ANTIALIAS)
pic_new = pic_org.resize((width,height),)
_, sub_folder = os.path.split(root) #得到子文件夹的名字
pic_new_path = os.path.join(save_path,sub_folder)
if not os.path.exists(pic_new_path):
os.makedirs(pic_new_path)
pic_new_path = os.path.join(pic_new_path,file)
#pic_new_path = os.path.join(save_path,file)
log.info("pic_new_path:{},pic_new:{}".format(pic_new_path,pic_new.__dict__))
pic_new.save(pic_new_path)
'''
将图片合成视频
'''
from pathlib import Path
from moviepy.editor import ImageSequenceClip
def image2Movie(src_folder,distFile):
# src_folder: 来源文件夹的路径
file_list = list(Path(src_folder).glob('*.jpg'))
duration_list = [1] * len(file_list) #设置每张图片在视频中显示的时长
new_video = ImageSequenceClip(src_folder,durations=duration_list)
new_video.write_videofile(distFile,fps=5)
def test():
#获取D:\temp\pic下的所有图片
src_folder = r'D:\temp\pic\srcPic'
save_path = r'D:\tmp\pic\20230605'
distFile = r'D:\tmp\pic\20230605.mp4'
suo_tu2(src_folder,save_path,640,640)
#image2Movie(save_path,distFile)
import cv2
import os
import moviepy.editor as mov
def image_to_video(image_path,media_path):
image_names = os.listdir(image_path)
#对提取的图片名称进行排序
image_names.sort(key=lambda n: int(n[:-4]))
#设置写入格式
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
#设置每秒帧数
fps = 1
#读取第一个图片大小尺寸,因为需要转换成视频的图片大小尺寸是一样的
image = Image.open(image_path + os.sep + image_names[0])
#初始化媒体写入对象
media_writer = cv2.VideoWriter(media_path,fourcc,fps,image.size)
#遍历图片,将每张图片加入视频当中
for i in range(3):
for image_name in image_names:
im = cv2.imread(os.path.join(image_path,image_name))
media_writer.write(im)
log.info("{}合并完成!".format(image_name))
#释放媒体写入对象
media_writer.release()
log.info("无声视频写入完成!")
# 给视频配置音乐
def set_music():
#合成视频设置背景音乐函数
log.info("开始添加背景音乐!")
#初始化视频文件对象
clip = mov.VideoFileClip(r'D:\tmp\pic\20230605.mp4')
#从某个视频中提取一段背景音乐
audio = mov.AudioFileClip(r'D:\tmp\pic\taohuanuo.mp3').subclip(30,90)
#将背景音乐写入.mp3文件
audio.write_audiofile(r'D:\tmp\pic\taohuanuo2.mp3')
# 想合成好的无声视频中添加音乐
clip = clip.set_audio(audio)
#保存视频
clip.write_videofile('D:\tmp\pic\20230605-2.mp4')
log.info("背景音乐添加完成!")
from moviepy import *
from moviepy.editor import *
# mp3与mp4合并
def mp3_merge_mp4(mp3,mp4,newmp4):
#提取音频
audio = AudioFileClip(mp3)
#读取视频
video = VideoFileClip(mp4)
#将音频合并到视频中
video = video.set_audio(audio)
#输出
video.write_videofile(newmp4)
# 给视频添加标题字幕
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
def make_title_text():
video_clip = VideoFileClip(r'D:\tmp\pic\20230605-2.mp4') # 读取视频
text = TextClip(txt='商洛*望江楼', font='FZBangSXJW.ttf',fontsize=120,color='RED',kerning=10)
text = text.set_position('center')
text = text.set_duration(1)
new_video = CompositeVideoClip([video_clip, text])
new_video.write_videofile(r'D:\tmp\pic\20230605-3.mp4')
if __name__=='__main__':
#test()
'''
image_path = r'D:\temp\pic\srcPic'
media_path = r'D:\tmp\pic\20230605.mp4'
image_to_video(image_path,media_path)
'''
#set_music()
'''
mp3 = r'D:\tmp\pic\taohuanuo2.mp3'
mp4 = r'D:\tmp\pic\20230605.mp4'
newmp4 = r'D:\tmp\pic\20230605-2.mp4'
mp3_merge_mp4(mp3,mp4,newmp4)
'''
make_title_text()