Python:发布函数模块并在另一个文件中引用

注意,是windows版本!

1.发布函数模块

step1:创建一个自己的函数,保存名为nesert.py。

如下:

"""此函数用来实现嵌套数组的分层输出"""
"""包含三个参数:数组、是否打开缩进值的布尔类型数据、控制缩进从哪里开始、文件保存的位置"""
import sys

def print_lol(the_list, indent=False, level=0, fh=sys.stdout):
    for each_item in the_list:
        if isinstance(each_item, list):
            print_lol(each_item, indent, level+1, fh)
        else:
            if indent:
                print("\t" * level, end='', file=fh)
            print(each_item, file=fh)

step2:创建一个setup.py文件。

具体内容如下:

from setuptools import setup

setup(
    name = 'nester',
    version = '1.0.0',
    py_modules = ['nester'],
    author = 'wyk'
    )
"""中间是setup的参数,可以搜索具体内容包括什么,其中前三个是必要的参数"""

    step3:创建一个文件夹(命名为nester),将两个文件都放进去:

step4:在该文件夹中右击选择在终端中打开,进入dos命令行。

首先输入:

python setup.py sdist

输出行显示:

文件夹出现:

再在dos中输入:

python setup.py install

输出行显示:

 文件夹出现:

此时已经打包成模块了,具体模块在dist中。

step4:接下来我们验证一下:

在python的shell中输入:

import sys
print(sys.path)

将输出包含'C:\\Users\\01\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\nester-1.0.0-py3.12.egg'的路径(具体路径不重要,主要是包含函数名,证明已经打包成模块,可以进行引用了)

如果这里没有路径,我们在python的shell中使用语句:

sys.path.append(’需要引用模块的地址')

进行添加操作。

2.将已发布的函数模块在另一个文件中引用

step1:编写一个可以具体引用该函数的示例:

并进行具体的引用

import nester ###引用nester包
print(nester.__file__)  ###打印nester的位置(当更新模块的时候,可以在此处检查nester的版本)


man = []
other = []

try:
    data = open('sketch.txt') ###需要处理的文本
    
    for each_line in data:
        try:
            (role,line_spoken) = each_line.split(':',1)
            """strip()BIF从字符串中去除不想要的空白符"""
            line_spoken = line_spoken.strip()
            if role == 'Man':
                man.append(line_spoken)
            elif role == 'Other Man':
                other.append(line_spoken)
        except ValueError:
            pass
        
    data.close()
except IOError:
    print('The datafile is missing!')

try:
    with open('man_data',"w") as man_file:
        nester.print_lol(man, fh=man_file) ###引用函数,注意前面加的nester,相当于人类的”姓“
    with open('other_data',"w") as other_file:
        nester.print_lol(other, fh=other_file)
except IOError as err:
    print('File error: '+str(err))

step2:按F5运行。

输出位置,并创建了对应的文件(第一个和第三个)(此时文件格式还不是适合阅读的状态,可以调动其他函数进行修改)

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值