加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

从stdin到bash脚本中的python代码的管道

发布时间:2020-12-16 01:48:02 所属栏目:安全 来源:网络整理
导读:我有一个包含 python代码的bash脚本f.该python代码从标准输入读取.我希望能够按如下方式调用我的bash脚本: f input.txt output.txt 在上面的例子中,python代码将从input.txt读取并将写入output.txt. 我不知道该怎么做.我知道如果我只想写一个文件,那么我的b
我有一个包含 python代码的bash脚本f.该python代码从标准输入读取.我希望能够按如下方式调用我的bash脚本:

f input.txt > output.txt

在上面的例子中,python代码将从input.txt读取并将写入output.txt.

我不知道该怎么做.我知道如果我只想写一个文件,那么我的bash脚本就像这样

#!/bin/bash
python << EOPYTHON > output.txt
#python code goes here
EOPYTHON

我尝试将上面代码中的第二行更改为以下内容,但没有运气

python << EOPYTHON $*

我不知道该怎么做才能做到这一点.有什么建议?

编辑
我将举一个更具体的例子.考虑以下bash脚本,f

#!/bin/bash
python << EOPYTHON 
import sys
import fileinput
for i in fileinput.input():
    sys.stdout.write(i + 'n')
EOPYTHON

我想用以下命令运行我的代码

f input.txt > output.txt

如何更改我的bash脚本以便它使用“input.txt”作为输入流?

解决方法

更新的答案

如果你绝对必须以你提出的方式运行,你可以这样做:

#!/bin/bash
python -c 'import os
for i in range(3):
   for j in range(3):
     print(i + j)
'  < "$1"

原始答案

将python代码保存在名为script.py的文件中,并将脚本f更改为:

#!/bin/bash
python script.py < "$1"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读