用于快速调用文件夹下的py文件或者包
Project description
[TOC]
fileMapping
当前版本 0.3.7
用于快速调用文件夹下的py文件或者包
安装
使用以下命令通过pip安装fileMapping库:
pip install fileMapping
环境要求
fileMapping库的开发环境是: Python 3.13 Windows 10
如何使用?
示例代码
文件结构树
文件结构树
-
├─ main.py
├─ latest.log
├─ config.py / config.json
└─ plugins
├─ a.py
├─ b.py
└─ C # 是一个包
├─ __init__.py
├─ config.py
└─ api.py
└─ bilibili # 是一个函数 bilibili(id) -> url
# 输入一个视频id,返回视频直链
config.py
# config.py
mysql = {
# 数据库配置
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "123456",
}
config.json
{
"mysql": {
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "123456"
}
}
C\\config.py
# C\\config.py
bilibili_url = "https://www.bilibili.com/video/"
上述中,config.py 和 config.json 都是配置文件,我们可以根据自己的需求选择其中一个作为配置文件。
main.py
# main.py
from flask import Flask
from fileMapping import File, pathConversion, configConvertTodict
# 如果 config 是py文件 config.py
import config
f = open('latest.log', 'w', encoding='utf-8')
f = File(pathConversion(__file__, 'plugins'), config=configConvertTodict(config), printPosition=f, printLog=True)
# 例 printPosition=f 日志输出位置为 latest.log 文件
# # 如果 config 是json文件 config.json
import json
with open('config.json', 'r') as f:
config = json.load(f)
f = File(pathConversion(__file__, 'plugins'), config=config, printLog=False)
# 例 printLog=False 关闭日志输出
"""
上述中
- printPosition
- printLog
- config
可以不添加
"""
if __name__ == '__main__':
app = Flask(__name__)
f.run(app.route)
a.py
# a.py
from fileMapping import File
# 调用config-mysql-host
def main():
print(File.public['config']['mysql']['host'])
def video_url() -> str:
# 'BV1mNimYkErX' -> 是视频id
return File.invoke.C.api.bilibili('BV1mNimYkErX')
b.py
# b.py
from fileMapping import File
def main(route):
@route('/bilibili/<Bv_id>')
def bv(Bv_id) -> str:
return File.invoke.C.api.bilibili(Bv_id)
C\\__init__.py
# C\\__init__.py
from plugins.C import api # 目前只能通过这样的方式导入, 计划在以后的版本改进
__fileName__ = ''
# 运行指定为 __init__.py 文件
__function__ = ''
# 只调用不运行
C\\api.py
# C\\api.py
from . import config
def bilibili(Bv_id) -> str:
# 调用config-bilibili_url
# 这里只是一个简单的事例
# 这一行代码无法获取直链
# 若想获取直链,请添加其他代码
return config.bilibili_url + Bv_id
函数介绍
fileMapping.File
class File:
"""
callObject
- 调用对象
invoke
- 内行参数
returnValue
- 返回参数
public
- 公共
"""
def __init__(self,
absolutePath: os.path,
screening=None,
config: dict = None,
printLog: bool =False,
printPosition=sys.stdout
):
"""
映射文件夹下的Python文件或者包
:param absolutePath: 当前的根目录绝对路径
:param screening: 要映射的文件
:param config: 配置文件 它将会被映射到 public['config']
:param printLog: 是否打印日志
:param printPosition: 日志输出位置 默认为 sys.stdout 在终端输出
"""
def run(self, *args, name: str = None, **kwargs):
"""
运行映射文件
:return:
"""
fileMapping.pathConversion
def pathConversion(cpath: os.path, path: os.path) -> os.path:
"""
当要转化的文件目录在调用文件的临旁时,则可以用这个快速转化
例:
|--->
|-> plugIns
|-> x.py
其中x.py要调用plugIns文件夹时即可快速调用
pathConversion(__file__, "plugIns")
:param cpath: __file__
:param path: 必须为文件夹
:return:
"""
更新日志
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
filemapping-0.3.7.tar.gz
(8.1 kB
view details)
File details
Details for the file filemapping-0.3.7.tar.gz.
File metadata
- Download URL: filemapping-0.3.7.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
298f8114ac7d3502e83c309700b365f2c558a7cd72714d998005c4ec02f8121e
|
|
| MD5 |
894b7ff4400b1171d8248aa84f31dafb
|
|
| BLAKE2b-256 |
b184c298bc632de5c134c4fb7e7c9ce8afdf42ae0877eaba47a6aa1e51aca599
|