怎么把文件导入python_如何导入其他Python文件?
小编典典
导入python文件的方法有很多,各有利弊。
不要只是匆忙地选择适合您的第一个导入策略,否则稍后您将在发现不符合您的需求时重写代码库。
我将首先说明最简单的示例#1,然后将介绍最专业,最可靠的示例#7
示例1,使用python解释器导入python模块:
将其放在/home/el/foo/fox.py中:
def what_does_the_fox_say():
print("vixens cry")
进入python解释器:
el@apollo:/home/el/foo$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
>>> import fox
>>> fox.what_does_the_fox_say()
vixens cry
>>>
您通过python解释器导入了fox,并what_does_the_fox_say()从fox.py中调用了python函数。
示例2,在脚本中使用execfile或(exec在Python 3中)在适当的位置执行另一个python文件:
将其放在/home/el/foo2/mylib.py中:
def moobar():
print("hi")
将其放在/home/el/foo2/main.py中:
execfile("/home/el/foo2/mylib.py")
moobar()
运行文件:
el@apollo:/home/el/foo$ python main.py
hi
功能moobar是从mylib.py导入的,并在main.py中可用
示例3,从…使用…导入…功能:
将其放在/home/el/foo3/chekov.py中:
def question():
print "where are the nuclear wessels?"
将其放在/home/el/foo3/main.py中:
from chekov import question
question()
像这样运行它:
el@apollo:/home/el/foo3$ python main.py
where are the nuclear wessels?
如果您在chekov.py中定义了其他函数,那么除非您使用它们,否则它们将不可用 import *
示例4,如果导入的riaa.py与导入的文件位于不同的位置,请导入
将其放在/home/el/foo4/stuff/riaa.py中:
def watchout():
print "computers are transforming into a noose and a yoke for humans"
将其放在/home/el/foo4/main.py中:
import sys
import os
sys.path.append(os.path.abspath("/home/el/foo4/stuff"))
from riaa import *
watchout()
运行:
el@apollo:/home/el/foo4$ python main.py
computers are transforming into a noose and a yoke for humans
那会从另一个目录导入外部文件中的所有内容。
示例5,使用 os.system(“python yourfile.py”)
import os
os.system("python yourfile.py")
示例6,通过piggy带python startuphook导入文件:
更新:此示例曾经同时适用于python2和3,但现在仅适用于python2。python3摆脱了此用户启动钩子功能集,因为它被低技能的python库编写者滥用,使用它在所有用户定义的程序之前不礼貌地将其代码注入到全局名称空间中。如果您希望此功能适用于python3,则必须变得更有创意。如果我告诉您如何做,python开发人员也会禁用该功能集,因此您是一个人。
参见:https : //docs.python.org/2/library/user.html
将此代码放入您的主目录中 ~/.pythonrc.py
class secretclass:
def secretmessage(cls, myarg):
return myarg + " is if.. up in the sky, the sky"
secretmessage = classmethod( secretmessage )
def skycake(cls):
return "cookie and sky pie people can't go up and "
skycake = classmethod( skycake )
将此代码放入您的main.py(可以在任何地方):
import user
msg = "The only way skycake tates good"
msg = user.secretclass.secretmessage(msg)
msg += user.secretclass.skycake()
print(msg + " have the sky pie! SKYCAKE!")
运行它,您应该获得以下信息:
$ python main.py
The only way skycake tates good is if.. up in the sky,
the skycookie and sky pie people can't go up and have the sky pie!
SKYCAKE!
如果您在此处遇到错误:ModuleNotFoundError: No module named 'user'这意味着您使用的是python3,默认情况下会禁用启动钩。
值得一提的是:https : //github.com/docwhat/homedir-examples/blob/master/python-commandline/.pythonrc.py随便 发送。
示例7,最健壮:使用裸导入命令在python中导入文件:
建立一个新目录 /home/el/foo5/
建立一个新目录 /home/el/foo5/herp
制作一个__init__.py在herp下命名的空文件:
el@apollo:/home/el/foo5/herp$ touch __init__.py
el@apollo:/home/el/foo5/herp$ ls
__init__.py
新建一个目录/ home / el / foo5 / herp / derp
在derp下,制作另一个__init__.py文件:
el@apollo:/home/el/foo5/herp/derp$ touch __init__.py
el@apollo:/home/el/foo5/herp/derp$ ls
__init__.py
在/ home / el / foo5 / herp / derp下,创建一个名为yolo.pyPut this 的新文件:
def skycake():
print "SkyCake evolves to stay just beyond the cognitive reach of " +
"the bulk of men. SKYCAKE!!"
关键时刻,创建新文件/home/el/foo5/main.py,并将其放入其中;
from herp.derp.yolo import skycake
skycake()
运行:
el@apollo:/home/el/foo5$ python main.py
SkyCake evolves to stay just beyond the cognitive reach of the bulk
of men. SKYCAKE!!
空__init__.py文件会通知python解释器开发人员打算将此目录作为可导入包。
2020-02-11
怎么把文件导入python_如何导入其他Python文件?相关推荐
- 模块的四种形式 模块的调用 循环导入问题 模块的搜索路径 py文件的两种用途 编译python文件 包...
目录 模块的四种形式 什么是模块 模块的四种形式 自定义模块 第三方模块 内置模块 包 使用模块的好处 模块的调用 循环导入问题 模块的搜索路径 py文件的两种用途 编译python文件 包 什么是包 ...
- seek是python文件操作方法吗,seek引发的python文件读写的问题
我的需求很简单,就是统计一下我的安装脚本执行的次数和时间,格式是这样的 install_times:1|install_times:2018-09-03 15:58:46 install_times: ...
- 用cmd运行python文件_怎么用cmd运行python文件
Layout Go工程项目的整体组织 首先我们看一下整个 Go 工程是怎么组织起来的. 很多同事都在用 GitLab 的,GitLab 的一个 group 里面可以创建很多 project.如果我们进 ...
- python对文件的读操作方法有哪些-Python文件操作实例大全
目录: 一.打开文件 二.文件对象的方法 三.文件的关闭 四.文件的读取和定位 五.文件的写入 六.课时28课后习题及答案 大多数程序都遵循着:输入->处理->输出的模型,首先接受输入数据 ...
- python对文件的读操作方法有哪些-Python文件常用操作方法
Python文件常用操作方法 一.对File对象常用操作方法: file= open(file, mode='r', buffering=-1, encoding=None, errors=None, ...
- python处理文件错行_打印当前python文件错误行
在python错误调试过程中有时需要打印当前python文件错误行,下面来介绍一下方法: import sys try: a = [1,2] print a[3] except: s=sys.exc_ ...
- python文件操作实验总结,[干货分享]Python文件操作技巧总结
引言 小伙伴们,今天给大家讲解一下python程序下的文件操作完整技巧梳理,都是笔者总结的干货.通过本文阅读,不仅可以带来生产力提升,也可以开发小脚本为生活带来乐趣. 首先不知道大家对 ...
- esp8266 刷 MicroPython固件,并使用MicroPython File Uploader python文件上传工具上传python文件
1.使用模块esp8266 2.进入固件官网:https://micropython.org/download/esp8266/ 3.将下载的esp8266-20220618-v1.19.1.bin放 ...
- linux如何执行python文件_以linux命令执行Python文件 - python
Closed. This question needs to be more focused.它当前不接受答案. 想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题 ...
最新文章
- 如何学习修改linux系统固件,基于Linux的固件,如何实现更新的好方法?
- 怎样设置html的元素属性,Jquery怎么设置元素的属性和样式?
- react使用 PropTypes 和 getDefaultProps()
- 互联网1分钟 |1115
- android 5.0 sd卡读写,如何使用为Android 5.0(Lollipop)提供的新SD卡存取API?
- 解析时分秒_三年级上册,数学期中复习卷(含详细答案解析),有效提分,收藏...
- GIT学习----第六节:撤销修改
- (转)PowerDesigner教程系列(二)概念数据模型
- 【汇编优化】之X86汇编优化
- Python开发技术详解PDF
- python绘图-新增子区域
- 一个接口文档模板的API设计流程
- 小米路由器r2d_小米路由器R2D刷机变砖维修过程记录
- 前端预览PDF总结:iframe、embed、PDFObject、PDF.js
- 前程无忧解密 + 推送
- Ghost Win7删除桌面IE图标
- 按键精灵 excel mysql_按键精灵常用插件介绍
- 电影里的机械手臂,和现实究竟有多大区别?
- Unity灯光(light)
- stm32---RS485半双工通信
热门文章
- Angular应用里的tsconfig.app.json
- Why SAP SQL view is not recommended to use in SQL ?
- SAP CRM, C4C和Hybris Commerce的数据迁移策略
- sap.ui.viewModifications view extension
- customizing download - debug in CRM
- 使用数据库表查询的方式直接获得CRM服务订单的sold to party信息
- SAP CRM One Order scheduline buffer handling
- 使用report找出系统里维护了available status reason的document
- 部署SAP UI5应用到ABAP服务器时,Webcontent path的determine逻辑
- windows系统上使用openssh client连接远程Linux服务器的日志分析