python中import自己写的.py

本文介绍了一个使用Python进行文本文件读写的小工具,通过定义readtxt和writetxt两个函数实现文件内容的读取与追加写入。此工具简化了日常开发中常见的文件操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用python来处理数据时,经常需要使用到读取文本和写入文本的with open,如果将这两个语句写入一个.py文件中,那么每次需要读取或者写入文本时,只需要import就可以了。

上代码:


import codecs #防止编码问题

#传入的参数为path和code,path表示txt文件的绝对或相对路径,code表示该txt的编码,一般为utf-8无bom,两个参数的数据类型都为str。
def readtxt(path, code):
    with codecs.open(path, 'r', encoding=code)as f:
        txt_lines = f.readlines()
    return txt_lines

#传入参数为path、content和code,path和code和上述相同,content即为写入的内容,数据类型为字符串。
def writetxt(path, content, code):
    with codecs.open(path, 'a', encoding=code)as f:
        f.write(content)
    return path+' is ok!'

然后将其保存为.py文件,命名随意,我这里命名为reader.py
然后新建一个文件夹,命名看心情,我这里命名myModule,将reader.py放到文件夹中,并将文件夹放到自己的某个路径下。
复制的时候注意也将myModule包含进去
复制刚刚myModule文件夹的路径,包括myModule,我这里是D:\DevelopmentLanguage\Python\myModule,将其写入到一个新的txt文件中保存,并将这个txt命名为myModule,后缀名改成.pth。
这里写图片描述
最后,将这个.pth文件放到python的安装路径→Lib→site-packages的文件夹下。

测试:
随便新建个txt,写入内容,编码用notepad++转为utf-8无bom。
这里写图片描述

然后打开windows power shell,输入:
ipython
或者
python
进入ipython或python后,输入:
这里写图片描述
成功获取txt内的文本,并存入到一个list中返回。

*注意使用的时候还需要加入函数名字,传入的参数需要和自己写得函数顺序以及类型保持一致。
这里写图片描述

*转载请注明来源,谢谢。

<think>我们正在讨论如何在Python中导入其他.py文件。根据引用[1],任何Python文件都可以作为模块导入,模块名就是文件名(不含.py后缀)。例如,一个名为hello.py的文件,其模块名为hello,可以通过import hello导入。 在Python中,导入模块的方式有多种: 1. 使用import语句导入整个模块:import module_name 2. 从模块中导入特定函数或变量:from module_name import function_name 3. 使用别名导入:import module_name as alias 4. 导入模块中的所有内容(不推荐,因为可能导致命名冲突):from module_name import * 另外,需要注意的是,当导入一个模块时,Python会执行该模块中的所有顶层代码。因此,通常我们会将模块中的执行代码放在if __name__ == '__main__':条件下,这样当模块被导入时,这部分代码不会执行。 现在,我们来看一个具体的例子。假设我们有两个文件:hello.py和main.py。 hello.py的内容如下: ```python def greet(name): print(f"Hello, {name}!") if __name__ == '__main__': # 当直接运行hello.py时,以下代码会执行 greet("World") ``` 在main.py中,我们可以这样导入并使用hello模块: ```python import hello hello.greet("Alice") ``` 或者使用from...import...: ```python from hello import greet greet("Bob") ``` 如果两个文件不在同一个目录下,我们需要确保被导入的模块所在的目录在Python的搜索路径中。可以通过以下方式之一实现: 1. 将被导入模块所在的目录添加到sys.path中。 2. 使用相对导入(在包内部)。 3. 设置PYTHONPATH环境变量。 例如,在main.py中,如果hello.py在子目录utils中,我们可以这样添加路径: ```python import sys sys.path.append('./utils') # 将当前目录下的utils目录添加到搜索路径 import hello hello.greet("Charlie") ``` 但是,更推荐的做法是使用包(package)来组织代码。包是一个包含多个模块的目录,并且包含一个__init__.py文件(可以是空文件)。例如,我们可以这样组织: ``` my_package/ __init__.py hello.py other_module.py main.py ``` 然后在main.py中这样导入: ```python from my_package.hello import greet greet("David") ``` 这样,通过包结构,我们可以更好地组织代码,并且避免直接修改sys.path。 另外,引用[4]提到了项目结构和setup.py。当我们开发一个项目并希望将其安装为包时,可以使用setup.py来定义包的元数据和依赖。这样,其他人可以通过pip install .来安装我们的包,然后就可以像导入标准库一样导入我们的模块了。 总结一下,在Python中导入其他.py文件,主要步骤是: 1. 确保要导入的文件是一个有效的Python模块(即.py文件)。 2. 如果文件不在当前目录或Python搜索路径中,需要将文件所在目录添加到搜索路径(或者使用包结构)。 3. 使用import语句导入。 注意:在导入模块时,Python会缓存导入的模块,以避免重复导入。如果需要重新加载模块(例如在开发过程中修改了模块),可以使用importlib.reload(module)。 下面,我们根据要求生成相关问题。</think>在 Python 中导入其他 `.py` 文件主要通过模块导入机制实现。以下是详细步骤和多种导入方式: ### 1. 基本导入(同目录) 若文件在同一目录下,直接使用 `import` 语句导入模块名(文件名不含 `.py` 后缀): ```python # 导入 module.py 中的所有内容 import module # 使用模块中的函数 module.my_function() ``` ### 2. 选择性导入 仅导入需要的函数/变量,避免命名冲突: ```python from module import specific_function, specific_variable # 直接使用 specific_function() print(specific_variable) ``` ### 3. 别名导入 解决命名冲突或简化长模块名: ```python import long_module_name as short_name from package.subpackage import complex_module as cm short_name.function() cm.method() ``` ### 4. 跨目录导入 #### 方法 1:修改 `sys.path` 临时添加目标路径到 Python 搜索路径: ```python import sys sys.path.append("/path/to/directory") # 添加目标目录 import target_module ``` #### 方法 2:包结构导入(推荐) 使用包结构并添加 `__init__.py` 文件: ``` my_project/ ├── main.py └── utils/ ├── __init__.py # 空文件(标识为包) └── helpers.py ``` 在 `main.py` 中: ```python from utils.helpers import helper_function ``` ### 5. 相对导入(包内部使用) 在包内部模块间导入(需在包目录内): ```python # 在 utils/tools.py 中导入同包的 helpers.py from . import helpers # 单点表示当前目录 from .helpers import clean_data ``` ### 注意事项 1. **模块执行**:导入时会执行模块顶层代码,建议将执行代码放在 `if __name__ == "__main__":` 中 2. **缓存机制**:模块只导入一次,修改后需用 `importlib.reload(module)` 重新加载 3. **循环导入**:避免模块 A 导入 B 同时 B 导入 A,会导致错误 ### 示例场景 文件结构: ``` project/ ├── main.py └── libs/ ├── __init__.py └── calc.py ``` `calc.py` 内容: ```python def add(a, b): return a + b ``` `main.py` 导入方式: ```python # 方法 1 from libs.calc import add print(add(2, 3)) # 输出 5 # 方法 2 import sys sys.path.append("libs") import calc print(calc.add(2, 3)) ``` > 关键点:Python 通过模块名(文件名)而非文件路径定位模块,导入时解释器会在 `sys.path` 列出的目录中搜索模块文件[^1][^4]。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值