python文件运行哪一个_如何使一个python文件运行另一个?

本问题已经有最佳答案,请猛点这里访问。

如何创建一个python文件来运行另一个?

例如,我有两个.py文件。我想运行一个文件,然后让它运行另一个.py文件。

docs.python.org / / modules.html教程

所以我execfile()模块通常是更好的。

有很多种方法。我将按倒排优先顺序列出它们(即,最佳优先,最差最后):

把它当作一个模块来对待:import file。这很好,因为它是安全、快速和可维护的。代码会像应该做的那样被重用。大多数Python库都使用多个方法运行,这些方法覆盖了许多文件。强烈推荐。请注意,如果您的文件名为file.py,则您的import不应在末尾包含.py扩展名。

臭名昭著的(和不安全的)执行命令:execfile('file.py')。没有安全感,很刻薄,通常回答错误。尽可能避免。

生成一个壳过程:os.system('python file.py')。绝望时使用。

只需为案例1添加一点细节:假设您希望将fileb.py导入filea.py。假设文件在同一个目录中,那么在filea中,您将写入import fileB。然后,在filea中,可以像这样调用fileb中的任何函数:fileB.name_of_your_func()。当然还有更多的选择和细节,但这会让你振作起来。

使用subprocess模块代替os模块

使用import可向函数添加名称间距,例如,function()变为filename.function()。要避免使用"从名称导入*"。这也将运行代码体。使用os.system()运行不会保留定义的函数(因为它是在另一个进程中运行的)。execfile在python3中是exec(),它不起作用。

execfile工作时间:d

#我解决了我的问题,非常容易!谢谢您!

我对如何使用"import()"定义其他.py脚本的参数感兴趣。

如果文件在子目录中呢?如果它有.py扩展名呢?如果文件名中有命令操作符,比如"-",该怎么办?"导入"行的外观如何?函数调用的外观如何?

假设您知道什么是模块,而模块不是您在这里想要的,那么execfile是正确的答案。我看不出它为什么比进口更不安全。你也可以看看compile。

最好的优先顺序是偏好或反向偏好?

如果需要调用"main"函数,那么case 1就不那么明显了。参见stackoverflow.com/a/14500330/3244382和stackoverflow.com/a/20158605/3244382

你能解释为什么execfile比import安全性低吗?

UNC路径可以很容易地与execfile(...)一起使用,您只需要使用确保使用正斜杠而不是反斜杠。execfile('//unc_network_folder/myUNCpythonscript.py')

第一个不起作用,给了我无效的语法

2号不工作,说不知道执行文件

数字3在记事本编辑器中打开py文件

使用python 2.7.3和ubuntu 12.10,获取一个python文件来运行另一个:

把这个放在main.py中:

1

2#!/usr/bin/python

import yoursubfile

把这个放进yoursubfile.py

1

2#!/usr/bin/python

print("hello")

运行它:

1python main.py

它打印:

1hello

因此,main.py运行yoursubfile.py。

有8种方法可以回答这个问题,这里有一个更规范的答案:如何导入其他python文件?

确保在导入的python脚本文件名中不使用"."(dot)

不是"import subfile.py",只是"import subfile",尽管文件名是subfile.py

哦,请把分号去掉。作为一个正在恢复的C/C++程序员,它伤害了我的眼睛!

同意,2号应该是print("hello")。

如何将参数传递给您的subfile.py?

谢谢,这个答案解决了我的问题。

您可以使用以下代码运行.py文件:

1

2import os

os.system('python filename.py')

注:将文件放在主python文件的同一目录中。

这会产生另一个过程吗?

并不总是有效。- 1

我使用了subprocess.call,它几乎与subprocess.popen相同。

1

2from subprocess import call

call(["python","your_file.py"])

请在你的答案中加上解释。

获取"名称错误:未定义名称'python'"

@Tahlor将python.exe目录添加到环境变量中的路径变量中

您将其中一个文件视为python模块,并让另一个文件导入它(就像导入标准的python模块一样)。然后,后者可以引用导入模块中定义的对象(包括类和函数)。模块还可以运行它需要的任何初始化代码。请参阅http://docs.python.org/tutorial/modules.html

1

2

3from subprocess import Popen

Popen('python filename.py')

或者我怎么做一个python-file-run-another-file

您可以使用此脚本:

1

2

3def run(runfile):

with open(runfile,"r") as rnf:

exec(rnf.read())

Syntax:

1run("file.py")

这背后的逻辑是什么?

超晚响应,但它基本上需要一个文件(变量runfile),打开它,读取它的内容。(内容在rnf.read()函数中读取)然后这些内容作为python代码执行,因此执行()调用。有关exec的信息可在此处找到

它可以从下面的主脚本中称为aa1.py,

1

2

3#!/usr/bin/python

import aa1

aa1

aa1.py可能在下面,

1print'abc'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言printf()函数具体解释和安全隐患

程序员都知道,也都会使用printf函数,但你知道它也有“安全隐患”吗?下面就来举例我说说:嵌入式专栏1问题描述打印输出的数据并不是理论值,如下图(右边):嵌入式专栏2进一步描述问题请…

brew search mysql_brew mysql

1、homebrew安装/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2、命令使用安装软件:brew install 软件名,例:brew install wget搜索软件:brew search 软件名&a…

spring 请求转码_Spring请求级备忘录

spring 请求转码介绍 备注化是一种方法级别的缓存技术,用于加快连续调用的速度。 这篇文章将演示如何仅使用Spring AOP实现任何数据源的请求级可重复读取。 Spring缓存 Spring提供了非常有用的缓存抽象 ,允许您将应用程序逻辑与缓存实现细节分离。 Sp…

java map 如何根据key获得对象_ThreadLocal:Java中的影分身

关于ThreadLocal,你有哪些疑问?ThreadLocal是用来解决什么问题的?如何使用ThreadLocal?ThreadLocal的实现原理是什么?可否举几个实际项目中使用ThreadLocal的案例?基础知识ThreadLocal是线程局部变量&#…

【C语言】你可能对 sizeof() 有点误解。。。

各位,今天还是按照惯例给大家分享一个C语言容易出现的小错误,这也是跟sizeof有关的,问题虽小,却可管中窥豹,话不多说,代码先行:#include int main() { int i; i 8; printf("%d\…

mysql cluster 设置单向复制_mysql单向主从配置

1.环境要求操作系统:centOS6.5或以上Mysql版本:mysql5.5主机配置:4核CPU、4G内存2.主从复制的方式mysql5.6开始主从复制有两种方式:基于日志(binlog)、基于GTID(全局十事务标示符),下面主要介绍基于日志(binlog)的复制…

java处理注释_如何处理Java注释

java处理注释Java 8的一项很酷的新功能是对lambda表达式的支持。 Lambda表达式在很大程度上依赖于FunctionalInterface 注释 。 在本文中,我们将介绍注释以及如何处理它们,以便您可以实现自己的出色功能。 注解 Java 5中添加了注释 。Java语言附带了一…

nginx tcp转发_Nginx学习(九):负载均衡服务

介绍对于请求而言,负载均衡能很好的均摊请求,提高服务端吞吐率和整体性能,多个服务节点部署的方式,也提高了容灾和服务高可用。一、负载均衡分类负载均衡分为:GSLB和SLB。1. GDLB全局负载均衡,往往按照国家…

控制台发送get命令_.NET Core使用命令行参数库构建控制台应用程序

前言在我们开发中可能需要设计一次性应用程序,这些实用程序可以利用接近原始源代码的优势,但可以在与主Web应用程序完全独立的安全性上下文中启动。具体在 [管理过程](https://12factor.net/admin-processes)中也已经列出了原因。创建控制台应用打开命令…

C语言函数为什么不能返回数组?

C语言函数为什么不能返回数组?在C语言程序开发中,我们不可以编写下面这样的代码:char f(void)[8] {char ret; // ...fill... return ret; }int main(int argc, char ** argv) {char obj_a[10]; obj_a f(); }不可以编写这样的代码这其实就是不…

mockito_书评:Mockito Essentials

mockitoSujoy Acharya的Mockito Essentials副标题( Packt出版 ,2014年10月)是:“实用指南,可帮助您使用Mockito进行单元测试并开始运行。” Mockito Essentials中的前言和七章涵盖大约190个实质性页面。 前言 在序言中…

python3 byte 字面值_bytearray() Python 内置函数

转载须注明出处:简书Orca_J35 | GitHuborca-j35 class bytearray([source[, encoding[, errors]]]) 该内置函数本质上是 bytearray 类的构造函数,用于创建一个 bytearray 实例。bytearray 实例是一个由字节(8-bits 无符号)构成的可变序列,并拥…

python如何调用c函数实现真正意义的多线程_python如何使用多线程执行多个函数?...

之前小编给大家介绍了用python去返回了一个值,立马就有小伙伴跟小编留言说道“能都执行多个内容?”于是,小编就给大家整理最细致,也是最简单的实现方法,方便大家理解学习,一起来看下吧~直接上代码&#xff…

Java EE 8怎么了? (第2部分)

Java EE 8的工作仍处于初期阶段,并有望在来年跟上发展步伐,届时我们将看到专家组的完成,围绕用例/功能的更多讨论,大量JIRA和各种规范的草案版本(本会很有趣!)。 在第1部分中 ,我们…

C语言中quot;##quot;的独特用法

市面上有很多比较火的编程语言,比如Python、 JAVA、 Go等,你可能觉得C语言很古老、很落后。如果你有这种想法,那可能你只是一个初学的菜鸟。可能绝大部分 C 程序员都不知道"##"隐藏用法,下面就来给大家讲讲。一、##的“…

html a标签去掉下划线_如何用HTML基本元素制作表格

第2天【HTML基本元素】主要内容标题标签段落标签强制换行水平线图片超链接文本格式化标签列表表格学习目标一、标题标题&#xff08;Heading&#xff09;是通过 <h1> - <h6> 标签进行定义的。<h1> 定义最大的标题。 <h6> 定义最小的标题。标题很重要请…

mysql忽略数据类型_MYSQL 常用数据类型

数字列类型数字列类型用于储存各种数字数据&#xff0c;如价格、年龄或者数量。数字列类型主要分为两种&#xff1a;整数型和浮点型。所有的数字列类型都允许有两个选项&#xff1a;UNSIGNED和ZEROFILL。选择UNSIGNED的列不允许有负数&#xff0c;选择了ZEROFILL的列会为数值添…

C语言中几个容易踩的“坑”!

今天给大家分享几个C语言中的坑。一、带参数的宏展开顺序#include #define f(a,b) a##b #define g(a) #a #define h(a) g(a)int main(void) {printf("%s\n",h(f(1,2)));printf("%s\n",g(f(1,2)));return 0; }运行结果:12f(1,2)浅析&#xff1a;本题中的#运…

java 拼图_我最喜欢的Java拼图2 + 1 = 4

java 拼图这是我当前最喜欢的Java难题。 您如何获取代码来执行此操作&#xff1f; Integer b 2; Integer c 1;System.out.println("bc : " (bc) ); // output: bc : 4 !!Sytem.out.println&#xff08;&#xff09;没有技巧&#xff0c;也就是说&#xff0c;您将…

dockerfile cd目录_使用Werf和现有的Dockerfiles改善你的CI/CD体验

迟到总比不到好。该故事讲关于我们因不支持使用常规的Dockerfile来构建镜像导致我们差点犯了一个重大错误。Werf[1]是一个GitOps工具&#xff0c;可以很好地集成到任何CI/CD系统中&#xff0c;并提供完整的应用程序生命周期管理&#xff0c;允许你&#xff1a;构建和推送镜像部…