本文将为您提供关于如何在Mac上创建可执行文件来运行python脚本的详细介绍,我们还将为您解释bash帮助的相关知识,同时,我们还将为您提供关于bash–使用Python子进程模块将输入传递给可执行
本文将为您提供关于如何在 Mac 上创建可执行文件来运行 python 脚本的详细介绍,我们还将为您解释bash 帮助的相关知识,同时,我们还将为您提供关于bash – 使用Python子进程模块将输入传递给可执行文件、c# – 在运行时创建可执行文件、c++可执行文件 管道 python 管道 c++可执行文件、python zipfile 模块压缩一个可执行文件,解压出来后不是可执行文件了的实用信息。
本文目录一览:- 如何在 Mac 上创建可执行文件来运行 python 脚本(bash 帮助)(python生成mac可执行文件)
- bash – 使用Python子进程模块将输入传递给可执行文件
- c# – 在运行时创建可执行文件
- c++可执行文件 管道 python 管道 c++可执行文件
- python zipfile 模块压缩一个可执行文件,解压出来后不是可执行文件了
如何在 Mac 上创建可执行文件来运行 python 脚本(bash 帮助)(python生成mac可执行文件)
如何解决如何在 Mac 上创建可执行文件来运行 python 脚本(bash 帮助)?
抱歉,如果这是一个容易回答的问题,但我一整天都在为这个简单的问题感到压力。我以前从未使用过 Macbook,也不熟悉内部工作原理。我编写了一系列六个 Python 脚本,这些脚本旨在串联运行,并且在我的 PC 上使用批处理文件轻松完成了此任务。但是,我一直在为 Mac 用户开发这个程序,并且不知道如何完成同样的事情。 我已经成功地安装了 python 以及所有必要的包,并且脚本可以一个一个地运行,所以基础设施就在那里。 在 Windows 上,我一直使用以下批处理脚本完成此操作:
@echo off
python outputnotion.py
python addData.py
python listAppender.py
python inputgsheets.py
ECHO Timing out for 30 seconds to allow Google Sheets to compute values
timeout /t 30 /nobreak
python outputgsheets.py
python inputnotion.py
pause
我不知道如何在 mac 上复制它,或者是否有可能。将使用此代码的人不熟悉 python 或运行脚本,因此解决方案越简单越好。
非常感谢,因为我整天都在为这个看似简单的问题挠头。
解决方法
您听说过 makefile 吗?它适用于基于 UNIX 的系统,例如 MacOS。我主要使用它们来存储我经常使用的 bash 脚本片段。
- 制作一个名为
Makefile
的文件 - 在
Makefile
中,这样写:
scripts:
python outputnotion.py;
python addData.py;
python listAppender.py;
python inputgsheets.py;
## This is a comment
## Sleep for 30 seconds
sleep 30;
@echo Timing out for 30 seconds to allow Google Sheets to compute values;
python outputgsheets.py;
python inputnotion.py;
## Invoke a pause
read -p "Press [Enter] key to continue...";
- 现在,使用
Makefile
所在目录中的 bash 终端,键入以下内容以执行脚本:
$ make scripts
,
shell 脚本只运行内置命令和外部程序。您当然可以为 Python 脚本编写一串调用,而不仅仅是编译程序。 shell 实际上是一种完整的编程语言,具有变量、控制结构等等。有点古怪,但我见过大型脚本执行复杂的任务(不是我建议这样做,有更好的工具)。
bash – 使用Python子进程模块将输入传递给可执行文件
现在,我有几个这样的文件(超过500个),我想使用Python的子进程模块自动执行此过程.
我试过这样做:
data=subprocess.Popen(['./a.out','< 0.in'],stdout=subprocess.PIPE,stdin=subprocess.PIPE).communicate()
当我运行它时,没有打印任何内容(数据[0]为空白).做我想做的事的正确方法是什么?
>使用shell = True并让shell处理重定向:
data = subprocess.Popen(['./a.out < 0.in'],shell=True).communicate()
>让python处理重定向:
with open('0.in') as f: data = subprocess.Popen(['./a.out'],stdin=f).communicate()
第二种选择通常是首选,因为它避免了外壳的变幻莫测.
如果要捕获数据中的stderr,则将stderr = subprocess.PIPE添加到Popen命令.否则,stderr将出现在终端上或发送python的错误消息的任何地方.
c# – 在运行时创建可执行文件
说我有2个程序.每一个都包含一个类.我将使用一个程序来修改和填充数据类.第二个文件是一个程序,它也有类,但是空的,它的唯一目的是以特定的方式访问这些数据.我不知道,我在想是否序列化特定类,然后“注入”第二个文件.但是如何才能做到这一点呢?我发现修改已编译的文件很有吸引力,但我从来没有能够进行不会导致错误的更改.
这只是一个想法.我不知道解决方案会是什么,这只是让我想到的东西.
我更喜欢c或c中的一些跨平台信息.我接受的唯一其他语言是c#.
也
我不是在寻找第三方图书馆,或者像Boost这样的东西.如果有任何正确方向的推动可能是我所需要的.
也
我不想使用编译器.
Jalf实际上读了我写的内容
这正是我想知道该怎么做的.我认为上面提到的内容相当明显.我没有说过编译文件或编写脚本.
引用“我发现修改已经编译过的文件非常吸引人”
请在发布前先阅读并理解问题.
谢谢.
解决方法
生成自解压可执行文件的这些实用程序实际上并不是从头开始生成可执行文件.它们具有预生成的可执行文件,并且数据文件仅附加到它的末尾.由于Windows可执行格式允许您将数据放在文件的末尾,仅关注“真正的可执行文件”部分(exe标题告诉它有多大 – 其余部分被忽略).
例如,尝试生成两个自解压zip,并对它们执行二进制diff.你会看到他们的第一个X KB字节完全相同,其余的是什么变化,根本不是可执行文件,它只是数据.执行文件时,它会查看文件末尾的内容(数据)并将其解压缩.
看一下维基百科条目,转到外部链接部分深入挖掘:
http://en.wikipedia.org/wiki/Portable_Executable
我这里只提到了Windows,但同样的原则适用于Linux.但是不要指望有跨平台的结果,你必须重新实现它到每个平台.我无法想象比可执行文件更依赖平台的东西.即使您使用C#,您也必须生成本机存根,如果您在Windows(在.net下)或Linux(在Mono下)运行,则会有所不同.
c++可执行文件 管道 python 管道 c++可执行文件
在centos中使用管道进行参数的传输
运行格式 ./c++A | python3 p.py | ./c++B
python脚本中使用标准输入和输出 stdin 和 stdout,python脚本参数是传输不到./c++B可执行文件的。
python 脚本中要使用
while True:
line=input()
............
print(line)
不要写
for line in sys.stdin:
print(line)
本人没有学过python,具体什么原因也不清楚,有请python大佬们给个解释吧
python zipfile 模块压缩一个可执行文件,解压出来后不是可执行文件了
import zipfile if __name__ == "__main__": #f=zipfile.ZipFile(''/home/aa/Projects/test/src.zip'') #f.extractall( ''/home/aa/Projects/test/'') zf = zipfile.ZipFile(''/home/aa/Projects/test/src.zip'', ''w'', zipfile.ZIP_DEFLATED) zf.write(''/home/aa/Projects/test/src'',''src'') zf.close() exit(0)
代码中的 src 是一个可执行文件,使用 zipfile 压缩,然后用 zipfile 的 extract 解压,但 src 的文件属性变了,不是可执行文件了
关于如何在 Mac 上创建可执行文件来运行 python 脚本和bash 帮助的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于bash – 使用Python子进程模块将输入传递给可执行文件、c# – 在运行时创建可执行文件、c++可执行文件 管道 python 管道 c++可执行文件、python zipfile 模块压缩一个可执行文件,解压出来后不是可执行文件了的相关知识,请在本站寻找。
本文标签: