logo

怎样在Python中引入另一个文件中的函数?

作者
Modified on
Reading time
3 分钟阅读:..评论:..

在Python中,可以通过多种方式引入自定义的函数或模块。以下是几种常见的方法:

1. 在同一文件中定义和调用函数

如果你的函数和调用它的代码在同一个文件中定义,那么直接调用即可:

def my_function(): print("Hello from my_function!") # 调用函数 my_function()

2. 从另一个Python文件导入函数

如果你将函数定义在一个单独的Python文件中(例如,my_module.py),并希望在另一个文件中使用它,可以使用import语句导入。

假设有一个my_module.py文件,内容如下:

# my_module.py def my_function(): print("Hello from my_function!")

在你的主脚本中(例如,main.py),你可以这样导入和使用:

# main.py from my_module import my_function # 调用函数 my_function()

3. 从同一目录的多个模块导入

如果你有多个模块需要相互导入,并且它们位于同一目录下,可以使用相对导入或绝对导入。

假设目录结构如下:

my_project/ ├── module_a.py ├── module_b.py └── main.py

module_a.py 中定义了一个函数:

# module_a.py def function_a(): print("Hello from function_a in module_a!")

你可以在 main.py 中导入并使用这个函数:

# main.py from module_a import function_a # 调用函数 function_a()

4. 使用包导入

如果你的项目结构较为复杂,可以将相关模块放在一个包中。包是包含 __init__.py 文件的文件夹。

假设目录结构如下:

my_project/ ├── my_package/ │ ├── __init__.py │ ├── module_a.py │ └── module_b.py └── main.py

module_a.py 中定义了一个函数:

# my_package/module_a.py def function_a(): print("Hello from function_a in module_a!")

你可以在 main.py 中导入并使用这个函数:

# main.py from my_package.module_a import function_a # 调用函数 function_a()

示例

假设你有以下两个文件:

process_md.py:

import os from pathlib import Path ignore_words = ["ignore", "skip", "omit"] def should_ignore_file(filename, ignore_words): """检查文件名是否包含任何忽略词""" return any(word in filename for word in ignore_words) def process_markdown_files(source): # 遍历源文件夹中的所有文件和文件夹 for root, dirs, files in os.walk(source): for file in files: # 检查文件扩展名是否为.md且不包含忽略词 if file.endswith('.md') and not should_ignore_file(file, ignore_words): source_file_path = Path(root) / file # 读取.md文件的所有行 with open(source_file_path, 'r', encoding='utf-8') as md_file: lines = md_file.readlines() # 打印文件内容 print(f"内容来自 {source_file_path}:") for line in lines: print(line, end='') print("\n---\n") # 在第二行插入“已处理” if len(lines) >= 1: lines.insert(1, "已处理\n") # 将修改后的内容写回到原.md文件中 with open(source_file_path, 'w', encoding='utf-8') as md_file: md_file.writelines(lines) print(f"Processed {source_file_path}")

main.py:

from process_md import process_markdown_files source_dir = Path('/path/to/source') # 调用函数处理文件 process_markdown_files(source_dir)

这样,你的 main.py 文件会导入 process_md.py 中定义的函数,并调用它来处理指定目录下的Markdown文件。确保在运行 main.py 时,source_dir 变量的值是你的源文件夹的实际路径。