python工作目录与文件目录
工作目录
文件目录:文件所在的目录
工作目录:执行python命令所在的目录
D:.
| main.py
|
+---data
| data.txt
|
+---model
| | model.py
| | train.py
| | __init__.py
| |
| +---nlp
| | | bert.py
|
\---util| view.py| __init__.py
我们以上图为例,很容易知道main.py
的文件目录是D:/test/main.py
,而train.py
的文件目录是D:/test/model/train.py
。
但是工作目录是哪个呢?我们打开vscode,可以看到terminal中也显示了一个目录D:\test
,也就是我们项目的目录,我们点一下运行,执行了一个python脚本,输出一个PS D:\test> python -u "d:/test/model/train.py"
在哪里执行的这个脚本呢?D:\test
,这就是我们的【工作目录】
工作目录可以是任何目录,只要能通过python运行就行,例如我们打开一个终端执行我们的train.py
脚本PS C:\Users\xxx> python D:\test\model\train.py
,那么工作目录就变成了C:\Users\xxx
。
读文件
python执行的时候,open函数中相对路径的会以当前的工作目录为基准。例如我们再vscode运行脚本,工作目录是D:\test
,那么就可以直接访问test目录下的所有文件以及所有子目录和子目录下的文件。
如果我们想在main.py访问data中的data.txt文件,很自然可以写出如下代码
with open('data/data.txt') as f:res = f.read()print(res)
但如果我们想在train.py中访问data.txt目录怎么办呢?你可能会用相对路径写出如下的代码
with open('../data/data.txt') as f:res = f.read()print(res)
但是会报如下错误
Traceback (most recent call last):
File “d:/test/model/train.py”, line 1, in
with open(‘…/data/data.txt’) as f:
FileNotFoundError: [Errno 2] No such file or directory: ‘…/data/data.txt’
这是因为我们执行train.py
文件的目录D:\test
,python会以工作目录为基准目录,即D:\test
,相对路径是相对于工作目录的,因此实际访问的就是D:\test/../data/data.txt
。当然就找不到了。正确的写法就是
with open('data/data.txt') as f:res = f.read()print(res)
写文件
我们训练了一个模型,想要把最终的结果保存在model目录中,该怎么办呢?工作目录依然是D:\test
。下面这种写法依然是错误的
with open('tf.pb','w') as f:f.write('hello world')
一定要明白相对路径是相对于工作目录来说的,我们执行命令的路径是D:\test
,因此最终写入的地方就是D:\test\tf.pb
,而不是model文件夹,正确的写法如下
with open('model/tf.pb','w') as f:f.write('hello world')
切换工作目录
如果我们把工作目录换掉了,上面的路径就都不对了,例如在C:\users\xxx
目录下执行python命令,那么上面的路径就就变成了C:\users\xxx\data\data.txt
或者C:\users\xxx\model\tf.pb
了,非常的不好用。
- 查看当前工作目录
os.getcwd()
- 切换工作目录 os.chdir(path)
修改train.py和main.py为
import os
cur_dir = os.getcwd()
print(cur_dir)
然后我们打开个终端执行两个脚本
PS C:\Users\xxx> python d:/test/model/train.py
train.py work dir = C:\Users\xxx
PS C:\Users\xxx> python d:/test/main.py
main.py work dir = C:\Users\xxx
发现他们的工作目录都是一样的,重新修改main.py和train.py,并且切换工作目录
# mian.py
import os
cur_dir = os.getcwd()
print("old work dir = ", cur_dir)
os.chdir(r'D:\\test')
cur_dir = os.getcwd()
print("new work dir = ", cur_dir)
with open('data/data.txt') as f:res = f.read()print(res)
# train.py
import os
cur_dir = os.getcwd()
print("old work dir = ", cur_dir)
os.chdir(r'D:\\test')
cur_dir = os.getcwd()
print("new work dir = ", cur_dir)
with open('model/tf.pb','w') as f:f.write('hello world')
PS C:\Users\xxx> python d:/test/main.py
main.py old work dir = C:\Users\xxx
main.py new work dir = D:\test
hello world
绝对路径
我个人喜欢以执行文件的路径作为相对目录的基准。例如执行main.py文件的时候,喜欢以main.py所在的目录D:\test
为基准,执行train.py的时候,喜欢以train.py所在的目录D:\test\model
为基准,这个时候我们可以先获取文件的绝对路径,然后根据这个路径拼接出我们想要的路径来, os.path.abspath(__file__)
可以获取文件的绝对路径,
# main.py
import os
file_path = os.path.abspath(__file__)
file_dir = os.path.dirname(file_path)
print('file_dir=',file_dir)print("cur work dir = ", os.getcwd())data_path = os.path.join(file_dir, 'data/data.txt')
print('data_path=',data_path)
with open(data_path,'r') as f:res = f.read()print(res)
同样
# train.py
import os
file_path = os.path.abspath(__file__)
file_dir = os.path.dirname(file_path)
print('file_dir=',file_dir)print("cur work dir = ", os.getcwd())
#
model_path = os.path.join(file_dir, 'tf.pb')
print('model_path=',model_path)
with open(model_path,'w') as f:f.write('hello world')
PS C:\Users\xxx> python d:/test/model/train.py
file_dir= d:\test\model
cur work dir = C:\Users\xxx
model_path= d:\test\model\tf.pb
很直观了,我们根据文件的目录拼接出我们想要的目录,然后执行读写操作。
导入自定义包/文件
我们util目录中有一个view.py的文件,里面包含了一些工具类和方法
# view.py
class View:def __init__(self, x, y):self.x = xself.y = y
我们想要在train.py中调用该怎么办呢?
import util.view import View
我们以D:\test
为工作目录,执行train.py文件,嘿嘿
Traceback (most recent call last):
File “d:/test/model/train.py”, line 1, in
from util.view import View
ModuleNotFoundError: No module named ‘util’
这是因为python在导入包的时候import xxx
是以文件路径为基准的,即以train.py为基准,发现train.py的目录中并没有util子目录,因此导入失败。聪明的你做了一个简单的修改
import ..util.view import View
发现报了另一个错误
Traceback (most recent call last):
File “d:/test/model/train.py”, line 1, in
from …util.view import View
ValueError: attempted relative import beyond top-level package
这是因为python规定顶层模块不能作为package,我们执行的是train.py文件,那么train.py所在的目录就是顶层模块了,train.py相对导入的的目录不在超出了train.py所在目录,因此导入失败。换句话说就是相对导入只能导入同一个package下的子package或module。
# main.py
import model.train
#train.py
import util.view import View
这种方式依然会报错,虽然我们执行的时main.py文件,但是导入model.train的时候依然会执行train.py文件。
总结一下:
- 相对路径导入时是以当前文件为基准的,当前文件所在的目录就是顶层模块目录
- 相对导入模块不能超出顶层目录,意味者相对导入只能导入当前文件所在目录下的模块或者子package
非常的疑惑,什么时候可以使用
..
呢
包查询路径
相对路径只能导入同一package下的module。要导入不同package下的module可以使用绝对路径。这就非常奇怪了,我们安装的三方库为什么可以在任意文件导入呢?这就不得不说python的库查询机制,python回去默认的一些地方查找安装的package,具体可以通过sys.path来查看
import sysfor path in sys.path:print(path)
d:\test\model
D:\soft\python3\python37.zip
D:\soft\python3\DLLs
D:\soft\python3\lib
D:\soft\python3
C:\Users\xxx\AppData\Roaming\Python\Python37\site-packages
C:\Users\xxx\AppData\Roaming\Python\Python37\site-packages\win32
C:\Users\x\xxAppData\Roaming\Python\Python37\site-packages\win32\lib
C:\Users\x\xxAppData\Roaming\Python\Python37\site-packages\Pythonwin
D:\soft\python3\lib\site-packages
可以看到除了第一条路径,其余都是跟python的默认安装路径有关。python会按顺序从这些路径里面查找我们安装的package,越靠前的优先级越高。例如我们导入import os
这个库优先从项目路径d:\test
查找os的库,没有找到就接着从第二个路径查找,一直找到D:\soft\python3\Lib
发现有os的库,然后导入。如果我们自己的项目中有一个os的库,就会优先使用项目中的,替换掉lib里面的。
sys.path绝对路径导入自己的包
我们把自己的package也加入到sys.path
中,python就可以找到了,一种简单的方法就是
#train.py
import os
import sys
cur_dir = os.path.dirname(os.path.abspath(__file__))# 直接导入会找不到模块
#import util.view# util模块在test目录下,我们把test目录添加到sys.path中
sys.path.append(os.path.dirname(cur_dir))for path in sys.path:print(path)import util.view# nlp在model下面,sys.path的第一个路径就是d:\test\model
# 可以在d:\test\model下面发现有一个nlp的package,导入成功
from nlp.bert import BERT
sys.path相对路径导入自己的包
sys.path添加相对路径的时候,以哪个目录为基准目录呢?答案是【工作目录】,我们是在d:\test
目录下执行的命令train.py,所以工作目录就是d:\test
,而util
包就是在d:\test
下面的,所以我们
#train.py
import sys
sys.path.append(".")
for path in sys.path:print(path)
import util.view
忽略python自己的目录,我们可以看到当前有sys.path有两个目录,第一个是d:\test\model
,也就是【文件路径】,python会自动把执行的文件的路径加进来,所以文件目录下的所有package和module都可以通过相对目录的方式找到。第二个是一个.
,这个就是工作目录。因为我们使用的是相对路径导入,而相对路径的基准目录就是d:\test
,.
代表的就是基准目录。
d:\test\model
.
使用绝对路径打印更直观一些
# train.py
import sys
import os
sys.path.append(".")
for path in sys.path:print(os.path.abspath(path))
import util.view
d:\test\model
d:\test
d:\test
添加到了sys.path
中,因此d:\test
下面的package就都可以访问到了。很明显相对路径很不好用,当我们把工作目录切换到C:\users\xxx
的时候,就又找不到了
PS C:\Users\xxx> python d:/test/model/train.py
d:\test\model
D:\soft\python3\python37.zip
D:\soft\python3\DLLs
D:\soft\python3\lib
D:\soft\python3
C:\Users\xxx\AppData\Roaming\Python\Python37\site-packages
C:\Users\xxx\AppData\Roaming\Python\Python37\site-packages\win32
C:\Users\xxx\AppData\Roaming\Python\Python37\site-packages\win32\lib
C:\Users\xxx\AppData\Roaming\Python\Python37\site-packages\Pythonwin
D:\soft\python3\lib\site-packages
C:\Users\xxx
Traceback (most recent call last):
File “d:/test/model/train.py”, line 6, in
import util.view
ModuleNotFoundError: No module named ‘util’
所以我们最好使用绝对路径来添加
小结
核心诉求就是找到package,为什么会找不到我们自己定义的package呢?因为没有把路径添加到python的包搜索路径里面,怎么添加呢?使用sys.path.append
添加。定位到package的绝对路径,然后添加进去。
相关文章:
![](https://img-blog.csdnimg.cn/direct/ec93484a5627428684d1f525b38cbc1b.png#pic_center)
python工作目录与文件目录
工作目录 文件目录:文件所在的目录 工作目录:执行python命令所在的目录 D:. | main.py | ---data | data.txt | ---model | | model.py | | train.py | | __init__.py | | | ---nlp | | | bert.py | …...
![](https://img-blog.csdnimg.cn/direct/39ec7bbc595547999ce495789d7dea6a.png#pic_center)
可信和可解释的大语言模型推理-RoG
大型语言模型(LLM)在复杂任务中表现出令人印象深刻的推理能力。然而,LLM在推理过程中缺乏最新的知识和经验,这可能导致不正确的推理过程,降低他们的表现和可信度。知识图谱(Knowledge graphs, KGs)以结构化的形式存储了…...
![](https://img-blog.csdnimg.cn/direct/045e929308b1471f81444564019bacdc.png)
秋招季的策略与行动指南:提前布局,高效备战,精准出击
6月即将进入尾声,一年一度的秋季招聘季正在热火进行中。对于即将毕业的学生和寻求职业发展的职场人士来说,秋招是一个不容错过的黄金时期。 秋招的序幕通常在6月至9月间拉开,名企们纷纷开启网申的大门。在此期间,求职备战是一个系…...
![](https://www.ngui.cc/images/no-images.jpg)
Java并发编程-wait与notify详解及案例实战
文章目录 概述wait()notify()作用注意事项用wait与notify手写一个内存队列wait与notify的底层原理:monitor以及wait_setMonitor(监视器)Wait Set(等待集合)Wait() 原理Notify() / NotifyAll() 原理注意事项wait与notify在代码中使用时的注意事项总结案例实战:基于wait与not…...
![](https://img-blog.csdnimg.cn/direct/0d51a39207dd4a67b25358f05383a029.png)
204.贪心算法:分发饼干(力扣)
以下来源于代码随想录 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 对孩子的胃口进行排序sort(g.begin(), g.end());// 对饼干的尺寸进行排序sort(s.begin(), s.end());int index s.size() - 1; // 从最大的饼…...
![](https://img-blog.csdnimg.cn/direct/7f342fbe816b475ba7e16390f9ae886a.png)
AI奥林匹克竞赛:Claude-3.5-Sonnet对决GPT-4o,谁是最聪明的AI?
目录 实验设置 评估对象 评估方法 结果与分析 针对学科的细粒度分析 GPT-4o vs. Claude-3.5-Sonnet GPT-4V vs. Gemini-1.5-Pro 结论 AI技术日新月异,Anthropic公司最新发布的Claude-3.5-Sonnet因在知识型推理、数学推理、编程任务及视觉推理等任务上设立新…...
![](https://www.ngui.cc/images/no-images.jpg)
【C++】const修饰成员函数
const修饰成员函数 常函数: 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后,在常函数中依然可以修改 class Animal { public:void fun1(){//这是一个普通的成员函数 }void fun2…...
![](https://img-blog.csdnimg.cn/img_convert/fdd5e6300e775bc994d4da26417f217c.jpeg)
基于模糊神经网络的时间序列预测(以hopkinsirandeath数据集为例,MATLAB)
模糊神经网络从提出发展到今天,主要有三种形式:算术神经网络、逻辑模糊神经网络和混合模糊神经网络。算术神经网络是最基本的,它主要是对输入量进行模糊化,且网络结构中的权重也是模糊权重;逻辑模糊神经网络的主要特点是模糊权值可…...
![](https://img-blog.csdnimg.cn/direct/e0e234cb62304cb28bde2bde329d66f1.png)
Java web应用性能分析之【prometheus监控K8s指标说明】
常规k8s的监控指标 单独 1、集群维度 集群状态集群节点数节点状态(正常、不可达、未知)节点的资源使用率(CPU、内存、IO等) 2、应用维度 应用响应时间 应用的错误率 应用的请求量 3、系统和集群组件维度 API服务器状态控…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot中的应用配置文件管理
Spring Boot中的应用配置文件管理 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Spring Boot中的应用配置文件管理。在现代的软件开发中&am…...
![](https://img-blog.csdnimg.cn/direct/5dd376cbe1094541a9aaf666da3d55fb.png)
SCCB协议介绍,以及与IIC协议对比
在之前的文章里已经介绍了IIC协议:iic通信协议 这篇内容主要介绍一下SCCB协议。 文章目录 SCCB协议:SCCB时序图iic时序图SCCB时序 VS IIC时序 总:SCCB协议常用在摄像头配置上面,例如OV5640摄像头,和IIC协议很相似&…...
![](https://img-blog.csdnimg.cn/direct/9f1ec97df2d247c4b9b1bfe8cee56a29.png)
K8S基础简介
用于自动部署,扩展和管理容器化应用程序的开源系统。 功能: 服务发现和负载均衡; 存储编排; 自动部署和回滚; 自动二进制打包; 自我修复; 密钥与配置管理; 1. K8S组件 主从方式架…...
![](https://img-blog.csdnimg.cn/direct/d1ee6ca4198f460d8ac8f2bc80073850.png)
Studying-代码随想录训练营day24| 93.复原IP地址、78.子集、90.子集II
第24天,回溯算法part03,牢记回溯三部曲,掌握树形结构结题方法💪 目录 93.复原IP地址 78.子集 90.子集II 总结 93.复原IP地址 文档讲解:代码随想录复原IP地址 视频讲解:手撕复原IP地址 题目࿱…...
![](https://img-blog.csdnimg.cn/direct/e7d736087372474d8da3a6e8b4893ba7.png)
2024《汽车出海全产业数据安全合规发展白皮书》下载
随着中国制造向中国智造目标的迈进,中国汽车正以前所未有的速度和质量,在全球市场上开疆拓土。不过,在中国汽车加快出海步伐的过程中,数据安全合规风险管理成为车企不容忽视的课题。 6月25日,在中国(上海&…...
![](https://img-blog.csdnimg.cn/direct/255bc94b8bc14195b52174ed9123e0c9.png)
nvm安装以及idea下vue启动项目过程和注意事项
注意1:nvm版本不要太低,1.1.7会出现下面这个问题,建议1.1.10及其以上版本 然后安装这个教程安装nvm和node.js 链接: nvm安装教程(一篇文章所有问题全搞定,非常详细) 注意2:上面的教程有一步骤…...
![](https://www.ngui.cc/images/no-images.jpg)
Java SPI服务发现与扩展的利器
Java中,为了实现模块之间的解耦和可扩展性,我们常常需要一种机制来动态加载和替换实现。Java SPI就是这样一种机制,它允许我们在不修改原有代码的情况下,为接口添加新的实现,并在运行时动态加载它们。 SPI,…...
![](https://www.ngui.cc/images/no-images.jpg)
Ansible的Playbook
Playbook 特点 playbook 剧本是由一个或多个"play"组成的列表play的主要功能在于将预定义的一组主机,装扮成事先通过ansible中的task定义好的任务角色。Task实际是调用ansible的一个module,将多个play组织在一个playbook中,即可以让…...
![](https://img-blog.csdnimg.cn/img_convert/8fa3f232456d4f18e11b09bb14ddc8c7.png)
多平台自动养号【开心版】偷偷使用就行了!
大家好,今天我无意间发现了一款【多平台自动养号工具】,看了一下里面的功能还是挺全面的,包含了【抖音,快手,小红薯】还有一些截流功能 虽然这款工具功能强大,但美中不足的是需要付费的。但别担心…...
![](https://www.ngui.cc/images/no-images.jpg)
Android与JavaScript的交互,以实现从WebView中打开原生页面并传递参数
在Android应用中,实现Android与JavaScript的交互,以实现从WebView中打开原生页面并传递参数,可以通过以下详细步骤完成: 1. 准备工作 添加WebView至布局:在你的Activity或Fragment的XML布局文件中加入WebView控件。 …...
![](https://www.ngui.cc/images/no-images.jpg)
信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的
信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的 图片的存储图片的文件格式像素数据的二进制表示存储和处理显示总结 图片的显示4. 像素点控制具体的像素控制过程示例总结 如题,这里以图片为例。 图片的存储 计算机桌面上的一…...
![](https://img-blog.csdnimg.cn/direct/71f1131017a841b3aa3aa53a3c2ee97c.png)
【考研408计算机组成原理】微程序设计重要考点指令流水线考研真题+考点分析
苏泽 “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家 目录 微指令的形成方式 微指令的地址形成方式 对应考题 题目:微指令的地址形成方式 - 断定方式 解题思路: 答题: 分析考点&…...
![](https://www.ngui.cc/images/no-images.jpg)
查看哪个docker环境在占用gpu
前言 有时候发现某些docker占用gpu资源却没有训练,需要查清楚是哪个并且把它stop掉。 方法 在docker里面用nvidia-smi命令,没有pid显示,需要在外面使用。得到pid信息后,使用命令 docker top 15766f6eeaf7(容器ID) | grep 551…...
![](https://img-blog.csdnimg.cn/direct/2c1669cff6b1485d86d3704d5ff58253.png)
JVM相关总结
JVM的些许问题 1.JVM内存区域划分 2.JVM类加载过程 3.JVM的垃圾回收机制 1.JVM的内存区域划分 一个运行起来的Java进程就是一个JVM虚拟机,需要从操作系统申请一大片内存,就会把内存划分成几个区域,每个区域都有不同的作用 常见的面试题 2.JVM类加载过程 熟练背诵 ! ! !…...
![](https://img-blog.csdnimg.cn/direct/2269388ca0b341d6b54899163a10e13c.png)
Python 面试【初级】
欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
![](https://www.ngui.cc/images/no-images.jpg)
机器学习SVR 随机森林 RBF神经网络做回归预测的MATLAB代码
SVR 参考这篇文章 Libsvm使用笔记【matlab】 close all; clc clear %% 下载数据 load(p_train.mat); load(p_test.mat); load(t_train.mat); load(t_test.mat); %% 数据归一化 %输入样本归一化 [pn_train,ps1] mapminmax(p_train); pn_train pn_train; pn_test mapminma…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot中配置Swagger用于API文档
Spring Boot中配置Swagger用于API文档 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何在Spring Boot应用中配置Swagger,以便于快…...
![](https://www.ngui.cc/images/no-images.jpg)
学习java第一百一十六天
Spring Framework有哪些不同的功能? 答: 轻量级-Spring 在代码量和透明度方面都很轻便。 IOC-控制反转AOP-面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。容器-Spring 负责创建和管理对象(Bean)的生命周…...
![](https://www.ngui.cc/images/no-images.jpg)
SQL Server的隐私盾牌:动态数据屏蔽(DMS)全面解析
🛡️ SQL Server的隐私盾牌:动态数据屏蔽(DMS)全面解析 在数据驱动的商业世界中,保护敏感信息至关重要。SQL Server提供了一种强大的安全特性——动态数据屏蔽(Dynamic Data Masking,简称DMS),…...
![](https://www.ngui.cc/images/no-images.jpg)
Android中常见的线程池
日常开发中我们常常使用到线程池,其能有效管理线程资源,避免过多线程导致系统资源浪费、又能复用线程资源,避免频繁的创建/销毁线程。在Android中线程池的实现为ThreadPoolExecutor类,本文主要记录该类相关的知识点。 线程池的六…...
![](https://i-blog.csdnimg.cn/direct/353b7fe50ab8448a8060c8cfa317bd68.png)
C# YoloV8 模型效果验证工具(OnnxRuntime+ByteTrack推理)
C# YoloV8 模型效果验证工具(OnnxRuntimeByteTrack推理) 目录 效果 项目 代码 下载 效果 模型效果验证工具 项目 代码 using ByteTrack; using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using Sys…...
![](https://img-blog.csdnimg.cn/direct/ed647bb319ae4566a218f0201b44ed51.jpeg)
什么是Cookie?有什么用?如何清除浏览器中的Cookie?
互联网上的每一次点击和每一个选择都可能被一种名为Cookie的技术记录下来。但Cookie是什么?我们在网站上登录时,为什么经常会被问及是否接受Cookie?接受Cookie登录会不会影响我们的在线隐私? Cookie是什么? Cookie是一…...
![](https://www.ngui.cc/images/no-images.jpg)
数据库基本管理
数据完整性: 实体完整性:每一行必须是唯一的实体域完整性:检查每一列是否有效引用完整性:确保所有表中数据的一致性,不允许引用不存在的值用户定义的完整性:制定特定的业务规则 主键: 用于唯…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
43.三倍游戏
上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/390 题目描述 三倍游戏是一种单人游戏。玩…...
![](https://img-blog.csdnimg.cn/direct/deae88b98f524b389d71251767669e59.png)
LoadBalance 负载均衡
什么是负载均衡 负载均衡(Load Balance,简称 LB),是⾼并发,⾼可⽤系统必不可少的关键组件. 当服务流量增⼤时,通常会采⽤增加机器的⽅式进⾏扩容,负载均衡就是⽤来在多个机器或者其他资源中,按照⼀定的规则合理分配负载. 负载均衡的⼀些实现 服务多机部署时,开发⼈…...
![](https://img-blog.csdnimg.cn/direct/643248eab7bd4a7688905aed98b435bf.png)
Wails 安装初体验
文章目录 Wails 安装说明1. 系统要求2. 安装步骤3. 构建应用 结论 Wails 安装说明 Wails 是一个用于构建桌面应用的 Go 框架,结合了现代前端技术。以下是安装步骤: 1. 系统要求 Go 1.16 或更高版本Node.js 和 npm可选:适用于 Windows、mac…...
![](https://img-blog.csdnimg.cn/direct/fa54e0e6885d40778debfc0c6ce10e26.png)
架构师篇-10、DDD实战篇:通过领域模型落地系统
基于领域模型的设计与开发 数据库设计程序设计微服务设计 在线订餐系统的领域事件通知 微服务拆分 事件风暴会议 梳理领域事件进行领域建模识别聚合关系划分限界上下文 用户下单领域模型 更新后的模型 领域模型的设计实现过程 数据库设计 数据库映射:一对一关系…...
![](https://img-blog.csdnimg.cn/direct/65bda0326994411d8556c12ad0192e13.png)
C++ | Leetcode C++题解之第190题颠倒二进制位
题目: 题解: class Solution { private:const uint32_t M1 0x55555555; // 01010101010101010101010101010101const uint32_t M2 0x33333333; // 00110011001100110011001100110011const uint32_t M4 0x0f0f0f0f; // 000011110000111100001111000011…...
![](https://img-blog.csdnimg.cn/direct/1a8450ef36fe4681aa2184bb226f93b5.png)
Git安装与使用及整合IDEA使用的详细教程
1. 版本控制软件介绍 版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理…...
![](https://img-blog.csdnimg.cn/direct/8ab515f27b9a4c449ac5b7826d05db79.png)
高效办公秘诀:使用Excel超级处理器提高工作效率,提升职场竞争力
在现今快节奏的工作环境中,如何高效地完成工作任务,减少加班时间,成为了许多职场人士关注的焦点。其中,Excel作为一款功能强大的电子表格软件,被广泛应用于数据处理、分析以及报表制作等领域。然而,仅仅依赖…...
![](https://www.ngui.cc/images/no-images.jpg)
深入探讨Python中的元编程:装饰器与元类
Python以其简洁明了的语法和强大的标准库,成为许多开发者的首选语言。而在高级开发中,元编程(Metaprogramming)是一个非常强大的工具,可以极大地提升代码的灵活性和可复用性。本文将深入探讨Python中的元编程ÿ…...
![](https://img-blog.csdnimg.cn/direct/e1ac7848e7f34647bf44c6ad81bde59a.png)
MaxKb/open-webui+Ollama运行模型
准备:虚拟机:centos7 安装Docker:首先,需要安装Docker,因为Ollama和MaxKB都是基于Docker的容器。使用以下命令安装Docker: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum…...
![](https://img-blog.csdnimg.cn/direct/4176eb11bb614a7eb7a5af5597683071.png)
2-requests模块(6节课学会爬虫)
2-requests模块(6节课学会爬虫) 1,安装requests2,发送get,post请求,获取响应3,response的方法方法一(Response.text)方法二(response.content.decode()&#…...
![](https://www.ngui.cc/images/no-images.jpg)
使用ECharts创建动态数据可视化图表
使用ECharts创建动态数据可视化图表 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代Web应用开发中,数据可视化是至关重要的一环。ECharts作…...
![](https://img-blog.csdnimg.cn/direct/9ba940962f5c4d71a6d8dffb17bcabd9.png)
Nacos配置中心客户端源码分析(一): 客户端如何初始化配置
本文收录于专栏 Nacos 推荐阅读:Nacos 架构 & 原理 文章目录 前言一、NacosConfigBeanDefinitionRegistrar二、NacosPropertySourcePostProcessor三、AbstractNacosPropertySourceBuilder总结「AI生成」 前言 专栏前几篇文章主要讲了Nacos作为服务注册中心相关…...
![](https://img-blog.csdnimg.cn/direct/bea06544c41b4990b6c1d4adb10830ab.png)
gin数据解析,绑定和渲染
一. 数据解析和绑定 1.1 Json数据解析和绑定 html文件: <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0&quo…...
![](https://img-blog.csdnimg.cn/direct/389b22169e6145b98352fa803462da7a.png)
Django 对模型创建的两表插入数据
1,添加模型 Test/app8/models.py from django.db import modelsclass User(models.Model):username models.CharField(max_length50, uniqueTrue)email models.EmailField(uniqueTrue)password models.CharField(max_length128) # 使用哈希存储密码first_name …...
![](https://img-blog.csdnimg.cn/img_convert/2c219697875bc213aa281f013fcd6bb1.gif)
Lua: 轻量级多用途脚本语言
Lua 是一种高效而轻量级的脚本语言,具备强大的扩展性和灵活性,广泛应用于游戏开发、嵌入式系统、Web 应用等多个领域。本文将深入探讨 Lua 的特性、应用场景以及如何使用 Lua 进行开发。 1. Lua 的起源与发展 Lua 的发展始于上世纪90年代初,…...
![](https://img-blog.csdnimg.cn/direct/7792b1ced1824456bcaa0610145130e7.png)
PotPlayer安装及高分辨率设置
第1步: 下载安装PotPlayer软件 PotPlayer链接:https://pan.baidu.com/s/1hW168dJrLBonUnpLI6F3qQ 提取码:z8xd 第2步: 下载插件,选择系统对应的位数进行运行,该文件不能删除,删除后将失效。 …...
![](https://www.ngui.cc/images/no-images.jpg)
实现写入缓存策略的最佳方法探讨
实现写入缓存策略的最佳方法探讨 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在软件开发中实现写入缓存策略的最佳方法。缓存在提升应用性能和…...
![](https://img-blog.csdnimg.cn/direct/05dda07de2e04ea88356374b2ffe8dba.png)
【Day03】0基础微信小程序入门-学习笔记
文章目录 视图与逻辑学习目标页面导航1. 声明式导航2. 编程式导航3. 导航传参 页面事件1. 下拉刷新2. 上拉触底3.扩展-自定义编译模式 生命周期1. 简介2. 生命周期函数3. 应用的生命周期函数4. 页面生命周期函数 WXS脚本1. 概述2. 基础语法3. WXS的特点4. 使用WXS处理手机号 总…...
![](https://img-blog.csdnimg.cn/direct/9545c7c774794b74aea276352ca41829.png#pic_center)
vector模拟实现【C++】
文章目录 全部的实现代码放在了文章末尾准备工作包含头文件定义命名空间和类类的成员变量 迭代器迭代器获取函数 构造函数默认构造使用n个值构造迭代器区间构造解决迭代器区间构造和用n个值构造的冲突拷贝构造 析构函数swap【交换函数】赋值运算符重载emptysize和capacityopera…...
![](https://www.ngui.cc/images/no-images.jpg)
MySQL之高可用性(二)
高可用性 避免单点失效 找到并消除系统中的可能失效的单点,并结合切换到备用组件的机制,这是一种通过减少恢复时间(MTTR)来改善可用性的方法。如果你够聪明,有时候甚至能将实际的恢复时间降低至0,但总的来说这很困难。(即使一些…...
![](https://img-blog.csdnimg.cn/direct/007911ed5ff8441fbce9e40e36612736.png)
鸿蒙生态应用开发白皮书V3.0
来源:华为: 近期历史回顾:...
![](https://img-blog.csdnimg.cn/direct/2296c64a11e04b6c8af6a514abfb96db.png)
爬虫-网页基础
HTML 基本语法 HTML:Hyper Text Markup Language, 超文本标记语言,是计算机语言的一种,由元素构成。 p元素 <p>Web 真好玩!</p> 由三大部分组成 开始标签:一对尖括号中间包裹这元素名称元素内容&#x…...
![](https://img-blog.csdnimg.cn/direct/1c993f754c7f428f95c75a2819f8c25f.png)
关于 AD21导入电子元器件放置“3D体”STEP模型失去3D纹理贴图 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139969415 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...
![](https://www.ngui.cc/images/no-images.jpg)
开启IT世界的第一步:高考新生的暑期学习指南
目录 前言 了解IT领域 学习编程语言 实践项目 学习资源 阅读专业书籍 培养良好的学习习惯 结语 最后 - 投票 前言 七月的钟声敲响,各省的高考分数已揭晓,意味着一段紧张而又充满奋斗的旅程画上了句号。然而,高考的结束并不意味…...
![](https://rmrbcmsonline.peopleapp.com/upload/rmh/voice/202405/cd312d3b8ab27281f36ec2d4e881cd72.jpg?x-oss-process=image/auto-orient,1)
《中国人大》2024年第9期目录
制图:李洪兴编校:宫宜希责编:张钰钗...
![](https://img-blog.csdnimg.cn/direct/2064ef52b3c24ee0a7e8bc6bbc680a6e.png)
web刷题记录(1)
[GXYCTF 2019]Ping Ping Ping 进入页面,发现有一个传入参数的框,目的就是为了让我们通过参数传入内容来执行代码。这里先传入本地ip,方便后面的ping命令运行 ls命令来查看,目录中的文件 传入后,发现目录下有flag.php,…...
![](https://www.ngui.cc/images/no-images.jpg)
sdbusplus:通过文件描述符传递数据
有的时候需要传递大量的数据,如果将数据通过dbus传递,会消耗大量的带宽。可以通过传递一个文件描述符替代传递数据: 以下的service通过文件描述符接收数据: //fd_service.cpp #include <sdbusplus/asio/connection.hpp> #include <sdbusplus/asio/object_server…...
![](https://www.ngui.cc/images/no-images.jpg)
C#压缩单个文件
1、压缩方法 /// <summary> /// 压缩 /// </summary> /// <param name"source">源目录</param> /// <param name"s">ZipOutputStream对象</param> public static void Compress(string source, ZipOutputStream s) {…...
![](https://img-blog.csdnimg.cn/direct/7d02f6bb78724ba89c2d8b6ddda7e2b9.gif)
格式化字符串
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 格式化字符串是指先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记…...
![](https://img-blog.csdnimg.cn/direct/b69dd8ed4bfa4255b148fe08a578e3d3.png)
组件的传参等
一:组件的生命周期函数 组件的生命周期函数: created只是创建了组件内的实例对象 attached,给组件实例绑定了属性,绑定到页面节点树之后 ready准备好渲染之后,还未渲染之前 moved组件实例被移动到另一个位置后执行 detached在整个组件被被移除执行 error执行的时候,组件内…...