分类 学习资源 下的文章 - Southerly 个人博客、生活记录!
首页
复制
搜索
前进
后退
重载网页
和我当邻居
给我留言吧
首页
留言
友链
壁纸
视频
归档
关于
更多
相册
推荐
图床
API
站长工具箱
佛曰
文件快递柜
联系站长
搜 索
1
每日60秒读懂世界
524 阅读
2
一款IP定位插件for Typecho(Joe主题)
457 阅读
3
Typecho相册单页模板适用于各个主题
457 阅读
4
接入51LA统计——本站(Joe)同款网站浏览量记录
453 阅读
5
中华人民共和国网络安全法
392 阅读
学习资源
python脚本
资源分享
源码
分享
各类教程
安卓逆向
Typecho
日常记录
登录
/
注册
搜 索
标签搜索
分享
教程
typecho
记录
生活
笔记
博客
joe
日常
故事
美化
python
脚本
源码
Southerly
博主
4天前
在线
累计撰写
39
篇文章
累计收到
99
条评论
首页
栏目
学习资源
python脚本
资源分享
源码
分享
各类教程
安卓逆向
Typecho
日常记录
页面
留言
友链
壁纸
视频
归档
关于
相册
推荐
图床
API
站长工具箱
佛曰
文件快递柜
联系站长
用户登录
登录
注册
找到
10
篇与
学习资源
相关的结果
2024-02-04
Typecho仿微信朋友圈主题 – Icefox
主题介绍:Icefox 是一款专为Typecho博客平台设计的免费开源主题,它模仿了微信朋友圈的交互风格和视觉效果,致力于提供一种新颖且社交化的博客体验。主要功能亮点:朋友圈样式布局:主题采用了类似微信朋友圈的时间线形式展示文章,增强了用户与读者间的互动性。个性化设置:顶部背景图设置:允许博主自定义上传一张图片作为页面顶部的大背景,营造独特的氛围。用户头像与昵称设置:支持个性化配置博主的头像与昵称,展现个人特色。内容管理:添加文章时可设置朋友圈图片:每篇博客文章可以搭配类似于朋友圈动态中的封面图片。图片点击放大功能:文章内嵌图片支持点击后全屏或放大查看。社交互动元素:查看评论功能:内置完善的评论系统,方便读者对文章发表看法并与博主交流。点赞功能:读者可以直接对文章或评论进行点赞,增加社区活跃度。阅读优化:文字过多自动收缩:对于长篇文章或段落,主题会智能处理,当内容过长时显示摘要,并提供“查看全部”按钮,以保证界面整洁。后台控制选项:视频播放设置:博主在后台可以配置是否让嵌入的视频自动播放,以适应不同用户的浏览习惯。评论管理:评论折叠与展开:针对评论数量较多的情况,提供了点击进入详情的功能,使页面加载更快速,同时保持良好的用户体验。下载链接:隐藏内容,请前往内页查看详情
2024年02月04日
58 阅读
0 评论
1 点赞
2024-01-26
joe主题美化教程——手机侧边栏
上图看看,给手机侧边栏几个栏目加了图标修改了颜色具体代码及位置如下:在header.php文件中修改<span><font color="#ff8900" style="font-weight:600;"> <i class="fa fa-home"></i> 首页</font></span><span><font color="0909f7b" style="font-weight:600;"> <i class="fa fa-mail-reply-all"></i> 栏目</font></span><span><font color="#f709f7b" style="font-weight:600;"> <i class="fa fa-window-restore"></i> 页面</font></span><span><font color="#66ff00b" style="font-weight:600;"> <i class="fa fa-thumbs-o-up"></i> 推荐</font></span>
2024年01月26日
72 阅读
0 评论
4 点赞
2023-10-18
删除当前目录下内容相同的一个文件--Python脚本
使用说明:1.需要有python环境2.将脚本放在需要处理的文件夹里,双击运行就可以了源码如下:import os # 获取当前目录下所有txt文件 def get_txt_files(): files = [] for file in os.listdir("."): if file.endswith(".txt"): files.append(file) return files # 比较所有txt文件并删除相同的文件 def compare_and_delete(): while True: txt_files = get_txt_files() deleted_files = set() # 存储被删除的文件 for i in range(len(txt_files)): if txt_files[i] in deleted_files: continue for j in range(i + 1, len(txt_files)): if txt_files[j] in deleted_files: continue file1 = txt_files[i] file2 = txt_files[j] with open(file1, "r") as f1, open(file2, "r") as f2: if f1.read() == f2.read(): os.remove(file2) print("删除文件:", file2) print("相同的文件:", file1, file2) deleted_files.add(file2) if not deleted_files: # 如果没有要删除的文件,则跳出循环 break # 执行脚本 compare_and_delete() # 在处理完成后停留在命令窗口 raw_input() # For Python 2 # input() # For Python 3
2023年10月18日
108 阅读
2 评论
2 点赞
2023-08-03
一款经典小游戏,为没有网络的电脑添砖加瓦
由于种种原因电脑不能联网,为使摸鱼更加快乐,闲暇时间写了个小游戏!运行界面如下图:看到界面就知道是什么了吧!没错,是它!是它!就是它————数独游戏!由于是单机电脑,环境比较单一,只有一个python2.7版本(无其它包),仅用自带的包写了一个界面,勉强能玩,大佬勿喷!食用方式1:保存代码为.py或者.pyw即可在有环境的电脑上运行食用方式2:下载我打包好的exe双击运行即可游玩(附文章底部)代码如下,如有bug,请指出# coding:utf-8 import Tkinter as tk import tkMessageBox import random class SudokuGame: def __init__(self, root): self.root = root self.root.title("SuDuKu Game") self.board = [[0 for _ in range(9)] for _ in range(9)] self.generate_board(70) self.labels = [[None for _ in range(9)] for _ in range(9)] self.selected_cell = (0, 0) self.highlighted_number = None # 存储高亮显示的数字 self.draw_board() self.root.bind("<KeyPress>", self.on_key) self.root.bind("<Button-1>", self.on_click) self.root.bind("<ButtonRelease-1>", self.on_double_click) self.root.bind("<Button-3>", self.clear_cell) # 绑定鼠标右键事件 self.create_menu() def create_menu(self): menu_bar = tk.Menu(self.root) # 创建"游戏"菜单 game_menu = tk.Menu(menu_bar, tearoff=0) game_menu.add_command(label="restart", command=lambda: self.restart_game(70)) menu_bar.add_cascade(label="Game", menu=game_menu) # 创建"难度"菜单 difficulty_menu = tk.Menu(menu_bar, tearoff=0) difficulty_menu.add_radiobutton(label="s", command=lambda: self.set_difficulty(60)) difficulty_menu.add_radiobutton(label="ss", command=lambda: self.set_difficulty(50)) difficulty_menu.add_radiobutton(label="sss", command=lambda: self.set_difficulty(40)) menu_bar.add_cascade(label="Difficulty", menu=difficulty_menu) self.root.config(menu=menu_bar) def restart_game(self, difficulty): self.generate_board(difficulty) self.update_board() def set_difficulty(self, difficulty): self.board=[[0 for _ in range(9)] for _ in range(9)] self.fill_board(0, 0) self.remove_numbers(difficulty) self.generate_board(difficulty) # 重新生成数独盘面 self.update_board() # 更新界面 def generate_board(self, difficulty): self.board = [[0 for _ in range(9)] for _ in range(9)] self.fill_board(0, 0) self.remove_numbers(difficulty) def fill_board(self, row, col): if col == 9: row += 1 col = 0 if row == 9: return True numbers = list(range(1, 10)) random.shuffle(numbers) for num in numbers: if self.is_valid_move(row, col, num): self.board[row][col] = num if self.fill_board(row, col + 1): return True self.board[row][col] = 0 return False def is_valid_move(self, row, col, num): # Check row for i in range(9): if self.board[row][i] == num: return False # Check column for i in range(9): if self.board[i][col] == num: return False # Check 3x3 grid start_row = (row // 3) * 3 start_col = (col // 3) * 3 for i in range(start_row, start_row + 3): for j in range(start_col, start_col + 3): if self.board[i][j] == num: return False return True def remove_numbers(self, difficulty): count = 81 - difficulty attempts = 0 while count > 0: row = random.randint(0, 8) col = random.randint(0, 8) if self.board[row][col] != 0: self.board[row][col] = 0 count -= 1 attempts += 1 if attempts >= 100: # 如果尝试次数超过100次,则跳出循环 break if count < 0: tkMessageBox.showinfo("tips", "Setting failed,please try again!!") def draw_board(self): for i in range(9): for j in range(9): number = self.board[i][j] if number == 0: text = '' else: text = str(number) label = tk.Label(self.root, text=text, font=("Arial", 16), width=2, relief=tk.SOLID) label.grid(row=i, column=j) self.labels[i][j] = label # 绑定鼠标双击事件 label.bind("<Double-Button-1>", lambda event, num=number: self.highlight_number(num)) # 判断是否需要高亮显示该数字 if number == self.highlighted_number: label.config(bg='yellow') def update_board(self): for i in range(9): for j in range(9): number = self.board[i][j] label = self.labels[i][j] if number == 0: text = '' else: text = str(number) # 判断是否需要高亮显示该数字 if number == self.highlighted_number: label.config(bg='yellow') else: label.config(bg='white') label.config(text=text) def on_key(self, event): if event.char.isdigit() and 1 <= int(event.char) <= 9: num = int(event.char) row, col = self.selected_cell self.board[row][col] = num self.update_board() self.check_win() def select_cell(self, row, col): self.selected_cell = (row, col) num = self.board[row][col] for i in range(9): for j in range(9): label = self.labels[i][j] if (i, j) == (row, col): label.config(bg='yellow') else: label.config(bg='white') if num == self.highlighted_number: if (i, j) == (row, col): label.config(bg='yellow') else: label.config(bg='white') else: if (i, j) == (row, col): label.config(bg='yellow') elif self.board[i][j] == self.highlighted_number: label.config(bg='yellow') else: label.config(bg='white') def on_click(self, event): x, y = self.root.winfo_pointerxy() widget = self.root.winfo_containing(x, y) for i in range(9): for j in range(9): if widget == self.labels[i][j]: self.select_cell(i, j) def on_double_click(self, event): x, y = self.root.winfo_pointerxy() widget = self.root.winfo_containing(x, y) for i in range(9): for j in range(9): if widget == self.labels[i][j]: self.highlight_number(self.board[i][j]) def clear_cell(self, event): row, col = self.selected_cell self.board[row][col] = 0 self.update_board() self.check_win() def highlight_number(self, num): if self.highlighted_number is None: self.highlighted_number = num else: self.highlighted_number = None self.update_board() def check_win(self): for i in range(9): for j in range(9): if self.board[i][j] == 0: return False tkMessageBox.showinfo("tips", "Win!") if __name__ == "__main__": root = tk.Tk() game = SudokuGame(root) root.mainloop()隐藏内容,请前往内页查看详情
2023年08月03日
220 阅读
2 评论
1 点赞
2023-05-28
Typecho对接github仓库做图床
Typecho是一款轻量级的开源博客系统,支持PHP+MySQL数据库。它的特点是简单易用、扩展性强、响应速度快等。配合Github的静态文件托管功能,可以轻松实现博客图片的存储和管理。下面来详细介绍Typecho使用Github作为图床的方法:1.创建Github仓库首先在Github上创建一个仓库,用来存放博客中的图片。需要注意的是,该仓库的名称不能与你的用户名相同,否则会导致冲突。例如我的用户名是“foreverycs”,那么我创建的仓库名可以是“imgs”!2.生成Github访问token为了在Typecho中访问Github仓库,需要生成一个访问token。在Github页面中点击右上角个人头像,选择“Settings”->“Developer settings”->“Personal access tokens”,然后点击“Generate new token”,按照提示操作即可。需要勾选“repo”和“read:user”权限。3.安装插件在Typecho中安装并启用“GithubFile”插件,用于将文章中的图片链接替换为Github仓库中的真实链接。该插件的下载地址为:https://github.com/MliKiowa/GithubFile4.在Typecho中配置Github信息在Typecho后台的“插件”->启用插件即可,然后配置信息填写Github的用户名、仓库名、访问token。保存设置后,Typecho写文章是添加的附件图片会自动上传至Github仓库中。5.在文章中插入图片在文章中需要插入图片时,直接点击添加的附件或使用Markdown语法来添加图片即可。例如: ![t01945d79566462c0fb.jpg]https://github.com/foreverycs/uploads/blob/main/2023/05/28/1685279075.jpg?raw=true 其中,“foreverycs”是我的Github用户名,“uploads”是我创建的Github仓库名,“t01945d79566462c0fb.jpg”是我上传到Github仓库中的图片文件名。通过以上插件,结合github仓库,就可以使用Github作为Typecho博客的图床了。优点:免费、便捷、无限流量等。
2023年05月28日
330 阅读
4 评论
3 点赞
2023-05-25
文件夹或者文件名称批量修改(python)
当你需要将多个文件名中的某个字符或字符串替换为另一个字符或字符串时,你可以写一个简单的 Python 脚本来实现这个任务。这篇文章将介绍一个使用 os 模块实现的简单文件重命名脚本。第一步:导入 os 模块在 Python 中,os 模块提供了访问文件系统的函数。为了在 Python 脚本中使用 os 模块,我们需要导入该模块:import os第二步:获取当前脚本所在目录在这个脚本中,我们需要获取当前脚本所在目录。Python 提供了 os.path 模块来处理目录和路径。我们可以使用 os.path.abspath(__file__) 函数来获取当前脚本的绝对路径,然后使用 os.path.dirname() 函数获得当前脚本所在的目录路径。这里的代码如下:dirpath = os.path.dirname(os.path.abspath(__file__))其中,__file__ 变量代表当前脚本的文件名(包括路径)。第三步:输入旧字符串和新字符串接下来,我们需要从用户处获取旧字符串和新字符串。我们可以使用 input() 函数来获得用户输入:old_string = input("请输入需要替换的旧字符串:") new_string = input("请输入替换成的新字符串:")这里,input() 函数将提示用户输入旧字符串和新字符串,并将其存储在 old_string 和 new_string 变量中。第四步:重命名文件接下来,我们可以使用 os.listdir() 函数枚举目录中的所有文件和文件夹,并使用 os.rename() 函数将其重命名为新名称。for filename in os.listdir(dirpath): # 构造旧的文件路径以及新的文件路径 old_filepath = os.path.join(dirpath, filename) new_filepath = os.path.join(dirpath, filename.replace(old_string, new_string)) # 如果旧文件路径与新文件路径相同,则跳过 if old_filepath == new_filepath: continue # 判断文件是否为文件夹 if os.path.isdir(old_filepath): # 重命名文件夹 os.rename(old_filepath, new_filepath) else: # 重命名文件 os.rename(old_filepath, new_filepath)这里,os.rename() 函数接受两个参数:旧文件名和新文件名。如果需要重命名文件夹,我们应该先递归地重命名子文件夹和子文件,然后再重命名当前文件夹的名称。第五步:输出完成信息最后,我们可以输出一个完成信息来提示用户脚本已经完成执行。print("完成!")完整代码下面是这个简单的 Python 文件重命名脚本的完整代码:import os # 获取当前脚本所在目录 dirpath = os.path.dirname(os.path.abspath(__file__)) # 获取要替换的旧字符串和替换成的新字符串 old_string = input("请输入需要替换的旧字符串:") new_string = input("请输入替换成的新字符串:") for filename in os.listdir(dirpath): # 构造旧的文件路径以及新的文件路径 old_filepath = os.path.join(dirpath, filename) new_filepath = os.path.join(dirpath, filename.replace(old_string, new_string)) # 如果旧文件路径与新文件路径相同,则跳过 if old_filepath == new_filepath: continue # 判断文件是否为文件夹 if os.path.isdir(old_filepath): # 重命名文件夹 os.rename(old_filepath, new_filepath) else: # 重命名文件 os.rename(old_filepath, new_filepath) print("完成!")效果如图若需要循环替换,在获取脚本所在路径后面加一句while True:
2023年05月25日
108 阅读
0 评论
3 点赞
2023-05-11
手机壁纸第二弹——懂你的壁纸(二)
暂无简介
2023年05月11日
170 阅读
0 评论
2 点赞
2023-04-23
付费测试
11111
2023年04月23日
314 阅读
1 评论
2 点赞
2023-04-08
过年放烟花源码
过年放烟花演示网页中的祝福语可以在源码index.html中247行修改。隐藏内容,请前往内页查看详情
2023年04月08日
187 阅读
0 评论
0 点赞
2023-04-05
蓝空图床搭建
利用宝塔搭建开源版本Lsky Pro图床蓝空图床介绍 蓝空图床是一款免费的在线图片存储工具,可以方便地将图片上传到云端并获取图片链接,让用户可以在博客、论坛、社交媒体等地方使用图片。蓝空图床支持多种图片格式,包括jpg、png、gif等常见格式,同时还支持压缩包上传和批量上传功能,为用户提供了更加便捷的图片管理和使用方式。除此之外,蓝空图床还提供了一些实用的功能,如图片缩放、裁剪、旋转等,让用户可以对图片进行简单的编辑和处理。总的来说,蓝空图床是一款功能齐全、易于使用的在线图片存储工具,适合个人和企业用户使用。搭建教程需要一个服务器、域名、以及Lsky Pro源码从github下载最新版开源版本源码备用,地址如下隐藏内容,请前往内页查看详情说明一下宝塔配置PHP >= 8.0.2BCMath PHP 扩展Ctype PHP 扩展DOM PHP 拓展Fileinfo PHP 扩展JSON PHP 扩展Mbstring PHP 扩展OpenSSL PHP 扩展PDO PHP 扩展Tokenizer PHP 扩展XML PHP 扩展Imagick 拓展exec、shell_exec 函数readlink、symlink 函数putenv、getenv 函数chmod、chown、fileperms 函数 支持本地等多种第三方云储存 AWS S3、阿里云 OSS、腾讯云 COS、七牛云、又拍云、SFTP、FTP、WebDav、Minio 多种数据库驱动支持,MySQL 5.7+、PostgreSQL 9.6+、SQLite 3.8.8+、SQL Server 2017+ 支持配置使用多种缓存驱动,Memcached、Redis、DynamoDB、等其他关系型数据库,默认以文件的方式缓存 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等 支持通过接口上传、管理图片、管理相册 支持在线增量更新、跨版本更新 图片广场1、开始搭建,打开宝塔,如图新建站点2、按照前面的要求添加扩展这里已经添加好3、将源码上传到网站根目录下并解压4、网站设置location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }5、对了别忘了建立数据库,记下用户名、数据库名、以及密码接下来就可以访问域名安装Lsky pro图床了,根据提示填写信息完成就搭建好了蓝空图床。有时间在补充Typecho对接蓝空图床,待续,,,,,,
2023年04月05日
217 阅读
2 评论
2 点赞