小编典典

导入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文件?相关推荐

  1. python能以文本和二进制方式处理文件_Python文件处理之文件写入方式与写缓存(三)...

    Python的open的写入方式有: write(str):将str写入文件 writelines(sequence of strings):写多行到文件,参数为可迭代对象 首先来看下writelin ...

  2. python能以文本和二进制方式处理文件_使用Python进行二进制文件读写的简单方法(推荐)...

    总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块. python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据 ...

  3. python图片显示文本框_用PYTHON以“形式”同时显示图像和文本框

    我是PYTHON新手.我试图用PYTHON以"表单"同时显示图像和文本框.在 我的问题是:图像在屏幕上不可见.如何解决这个问题?在 谢谢 我的代码:import tkinter a ...

  4. python如何在文本内排序_在python中对文本文件中的项进行排序

    如果您需要list元素作为子列表,那么上面的答案是可以的. 但如果你只需要对结果进行排序with open("Results.txt") as inf: data = [] for ...

  5. excel自学第4天_excel分列_excel导入文本数据

    一前言 二操作步骤 1.数据分列: 其中第3步可以对每列的格式进行设置.选中下面的分列,然后点击"列数据格式".并且还可以选择是否导入某列. 2.excel导入文本数据 导入后的文 ...

  6. python怎么导入文本-Python 导入文件问题

    1.同级目录下调用 若在程序 testone.py 中导入模块 testtwo.py , 则直接使用 [import testtwo 或 from testtwo import *] 2.调用子目录下 ...

  7. java的import和python的import对比_import导入的是什么

    Q1:from import导入出错,单独导入则正确.. 您好, from UserDict import UserDict 它与你所熟知的 import module 语法很相似,但是有一个重要的区 ...

  8. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内 ...

  9. python引入模块教程_python导入模块--案例

    1 导入模块 1.1 问题 本案例要求先编写一个star模块,主要要求如下: 建立工作目录 ~/bin/ 创建模块文件 ~/bin/star.py 模块中创建pstar函数,实现打印50个星号的功能 ...

最新文章

  1. [Swift]NSString、NSData、Base64互转
  2. 10 Linux引导过程和服务控制
  3. idea 中 git 修改了文件却无法提交(No Changes detected)
  4. python购物车程序-Python编写购物车程序
  5. vim中的 recording
  6. 微信跳一跳高分系列四:一个 JAVA 版开源的微信跳一跳辅助工具
  7. CSS3 建立弹性盒布局 Flex布局
  8. 【Linux】部署memcache
  9. css绘制一个动态雷达图
  10. 搜狗推送代码之搜狗百万蜘蛛实现
  11. python资产负债表_用Python清理雅虎财务资产负债表
  12. terminus 和 windows terminal_Windows命令行终端神器Cmder配置及美化指南
  13. 如何彻底卸载java环境
  14. Redis单点故障+红锁原理
  15. Android绝黑剑之AutoCompleteTextView、MultiAutoCompleteTextView之智能联想
  16. MSXML操作XML的完整例子
  17. Quake3安装出现问题解决:Required data files are missing.
  18. mysql 公式_MySQL常见公式汇总1
  19. github 下载的不全
  20. Elasticsearch从入门到放弃:浅谈算分

热门文章

  1. 获取DataTable前几条数据
  2. visio 2010下载
  3. ReactNative-----环境搭建二(android)
  4. js引用action层变量
  5. 【c_prime_plus】第十七章笔记
  6. asp.net数据格式的Format-- DataFormatString
  7. python培训学费多少钱-深圳龙华新区python编程培训机构,从哪几方面选择好学校...
  8. python编程入门书籍推荐-给刚入门python的朋友推荐几本书
  9. 100个必会的python脚本-学会这个Python库,至少能减少100行代码
  10. python 画三维函数图-Python画三维图-----插值平滑数据