在python中运行批处理文件

2024-09-28 12:14:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一组代码,我想通过一个.py文件而不是一个.bat文件按顺序运行,我该怎么做?我有以下代码来执行此操作:

   #!/usr/bin/python
   import sys
   import os
   bashCommand = "./available_itemsawk.sh"
   os.system(bashCommand)
   python_command="python run_process.py"
   os.system(python_command)

我有两个问题: 1) 我有shell脚本(可用)_项目编号:K.sh)具体如下:

  #!/bin/bash
  join -1 4 -2 1 -o 1.1,1.2,1.3,1.4,1.5,1.6,2.2 <(sort -k4 abc.txt) <(sort -k1 cdf.txt) > join.txt
  awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6}' join.txt > temp
  mv temp join.txt

但是,当我调用并通过python脚本运行它时,会出现以下错误:

  sort: write failed: standard output: Broken pipe
  sort: write error

2)如何通过操作系统过程?你知道吗

      abc.txt
      chr7  99999667    100000138   ENSG00000078487:I17.1       -
      chr7  100000139   100000199   ENSG00000078487:E17.1   ENSE00001180416 -
      chr9  100000046   100000367   ENSG00000203279:E2.1    ENSE00001678182 -
      chr3  99998605    100000561   ENSG00000036054:I5.1        +
      chr3  100000562   100000586   ENSG00000036054:E6.1    ENSE00001916783 +
      chr3  100000586   100000691   ENSG00000036054:E6.2    ENSE00003639820|ENSE00001916783 +
      chr9  99983518    100000704   ENSG00000159712:I1.1        -
      chr9  100000368   100000704   ENSG00000203279:I1.1        -
      chr9  100000731   100000765   ENSG00000254876:E1.1    ENSE00002183448 +
      chr9  100000765   100000779   ENSG00000197816:E1.1    ENSE00003621967 +


      cdf.txt
      ENSG00000078487:I17.1
      ENSG00000254876:E1.1
      ENSG00000036054:E6.1  
      ENSG00000036054:I5.1  
      ENSG00000197816:E1.1

Tags: 文件代码pyimporttxtbinossh
1条回答
网友
1楼 · 发布于 2024-09-28 12:14:56

因为我不能评论(还没有50分),这里是我最好的猜测。你知道吗

这似乎是权限问题。对每个脚本(批处理和python)的单独权限,或者在脚本头中定义的内容。你知道吗

python脚本包含#!/usr/bin/python,而批处理文件包含#!/bin/bash

这可能不是你问题的核心。但这让我想到,也许你的一个.py脚本是由一个权限低于批处理脚本要求的用户拥有或正在执行的,或者你的一个.txt文件。你知道吗

我会确保你所有的脚本和输入/输出文件不需要提升权限。你是以用户还是根用户的身份运行这些程序?这些文件是可读的、可写的、可由用户执行的还是仅由root用户执行的?你知道吗

Arch Linux file permissions wiki entry.

相关问题 更多 >

    热门问题