python 加载外部文件

import sys
import os
def pySource(filePath):
    myFile=os.path.basename(filePath)
    dir=os.path.dirname(filePath)
    fileName=os.path.splitext(myFile)[0]
    if(os.path.exists(dir)):
        paths=sys.path
        pathfound=0
        for path in paths:
            if(dir==path):
                pathfound=1
        if not pathfound:
            sys.path.append(dir)
    exec(‘import ‘+fileName) in globals()
    exec(‘reload(‘+fileName+‘)‘) in globals()
    return fileName
pySource(‘C:/Users/XS/Documents/maya/2012/zh_CN/prefs/scriptEditorTemp/myPY.py‘)

import sys

import os

def pySource(filePath):

#去掉文件目录路径,返回文件名,含文件后缀

myFile = os.path.basename(filePath)

#去掉文件名,返回目录路径

dir = os.path.dirname(filePath)

#将文件名和扩展后缀名分离后取文件名

fileName = os.path.splitext(myFile)[0]

#上面步骤中,编辑器仅根据提供的路径和文件名进行分类,并没有检测实际是否存在

#检查路径是否存在,如果存在则进入下一步

if( os.path.exists( dir ) ):

#sys.path是maya启动后加载python相关模块的地址集合

paths = sys.path

pathfound = 0

#遍历paths这个地址集合中的名称,如果有和提供的文件路径相同的地址,除了变量pathfound的值更改为1,不执行其他操作

for path in paths:

if(dir == path):

pathfound = 1

#如果路径不是地址集合中的地址,则将其加入(这是考虑多次启动脚本的情况)

if not pathfound:

sys.path.append( dir )

#以上的语句,将外部的python文件作为一个模块加载到了当前的进程中,可进行实时调用

#注意:这是个动态的加载,用户的外部文件会在下一次python重启动时从进程中消失

#exec方法用于执行存储在字符串或者文件中的python语句,类似MEL中的eval函数

#不过这里需要添加in  globals(),因为我们要在整个全局变量中执行我们的外部脚本

exec(‘import ‘ +fileName) in globals()

#因为是后导入的模块,因此需要重载文件来确保数据的更新

exec( ‘reload( ‘ + fileName + ‘ )‘ ) in globals()

#返回输入文件的命名空间

return fileName

# 输入一个文件需要提供完整路径--勿用中文路径

#注意python中路径是用斜杠【/】,而不是windows中文件夹路径的反斜杠【\】

#如果是MacOS系统,由于不存在windows的分区概念,路径通常为:/Users/...

pySource( ‘c:/Users /myPY.py‘ )

时间: 2024-10-30 23:26:05

python 加载外部文件的相关文章

django如何加载外部文件

django如何加载外部文件(环境:pycharm python2.7 django1.11) 有一份新的文件夹名为:py_aiplat_demo,内含有多个文件夹(SDK,demo,data). 1.把文件考到项目的下面,不是app下面. 如果你想使用里面的文件夹SDK此模块,首先你必须把它变成一个包,即内含有__init__.py文件,如果没有,就新建一个,其它一样 2.下面部分分为两种方法 一. 把py_aiplat_demo整个文件夹提升为蓝色文件,pycharm里的项目中,点击该文件夹

jQuery加载外部文件的方式get、post、ajax、load的区别及异步加载的实现

一.$.post(url, [data], [callback], [type])  url (String) : 发送请求的URL地址. data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示. callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法). type (String) : (可选)官方的说明是:Type of data to be sent.其实应该为客户

php加载外部文件类的3.5个方法

<?php /* 第一种方法 require:缺点就是如果加载文件过多,需要多个require */ // require('A.CLASS.PHP'); // require('B.CLASS.PHP'); /* 第二种方法__autoload PHP5在new 一个没有存在的类,会自动调用这个__autoload函数,____autoload只是去include_path寻找类文件并加载 php中类名和函数名不区分大小写.. */ function __autoload($class) {

javaweb中加载外部文件的三种方式

1.request.getSession().getServletContext().getResourceAsStream("/WEB-INF/classes/a.txt""); / 相对对于项目的根路径 2.getClass().getClassLoader().getResourceAsStream("/a.txt") / 不管有没有'/' 都相对于classpath路径(/WEB-INF/classes/) 3.getClass().getReso

kettle转换JavaScript加载外部js文件

日常开发中,时常会出现这样一种情况.有大量的函数是通用的.而每个JavaScript里面写一遍,给维护带来很大的困扰.因而需要将公共的函数写在外部js文件中.这时就需要引入外部的公共文件了.下面是在转换里的JavaScript组件中引入外部公共js文件. //加载js文件 LoadScriptFile(getVariable("Internal.Transformation.Filename.Directory", "") +"/common_Functi

JBoss 系列十四:JBoss7/WildFly如何加载外部的文件或properties文件

http://www.tuicool.com/articles/M7ZR3y 原文 http://blog.csdn.net/kylinsoong/article/details/12623997 主题 WildFlyXMLJBoss AS 内容概述 JBoss7/WildFly设底层框架一大亮点的Module class loading,及每一个相对独立的模块看作一个Module,每个Module都有自己的class loader,Module之间可以相互依赖,如下图: 当JBoss7安装完成

背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 资源 CustomResource ResourceDictionary 加载外部的 ResourceDictionary 文件 示例1.演示“CustomResource”相关知识点CustomResourceTest.cs /* * 本例是一个自定义 CustomXamlResourceLoader,用于演示 CustomResource 的使用 */ using Windows.UI.Xaml.Resources;

资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件

CustomResource ResourceDictionary 加载外部的 ResourceDictionary 文件 示例1.演示“CustomResource”相关知识点Resource/CustomResourceTest.cs /* * 本例是一个自定义 CustomXamlResourceLoader,用于演示 CustomResource 的使用 */ using Windows.UI.Xaml.Resources; namespace Windows10.Resource {

使用js加载器动态加载外部Javascript文件

今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js 1 var MiniSite=new Object(); 2 /** 3 * 判断浏览器 4 */ 5 MiniSite.Browser={ 6 ie:/msie/.test(window.navigator.userAgent.toLowerCase()), 7 moz:/gecko/.test(window.navigator.userAgent.toLowerCase()), 8 opera:/o