开发者社区 问答 正文

linux里面python调用系统命令问题 400 请求报错 

想用linux里的awk处理一个文本,输入行号,打印出来。因为数据是逗号分隔的csv文件,我第一时间就想起了awk。但是在写python时,出错了。
以下是用shell写的程序可以运行:
#!/bin/bash echo -n "please enter the line:" read lie awk  -F ',' -v var="$lie"  '{print $var}'  test_csv.csv >lines.txt

但是在python里面就报错了:
#!/usr/bin/python
#filename: hash.py import os os.system('echo -n "please enter the line:"') os.system('read lie') os.system('awk  -F ',' -v var="$lie"  '{print $var}'  test_csv.csv >lines.txt')

错误提示:

 test_csv.csv文件里面有50列10000行的数据

展开
收起
kun坤 2020-05-29 22:54:51 671 分享 版权
1 条回答
写回答
取消 提交回答
  • os.system(" awk  -F ',' -v var="$lie"  '{print $var}'  test_csv.csv >lines.txt") ######回复 @Karblue : 感谢你的回复,按照你的方法已经取出来了######回复 @songoex : 我晕。你的lie 是用shell读出来的。当然不行了。 应该是 lie = raw_input() os.system("awk -F ',' -v var=""+lie+"" '{print $var}' test_csv.csv >lines.txt")######命令提示没有报错,但是却打印了test_csv.csv里面的全部数据######试试这个:os.system("awk  -F ',' -v var="$lie"  '{print $var}'  test_csv.csv >lines.txt")######命令没有报错,但是却打印了test_csv.csv里面的全部数据

    2020-05-29 22:54:56
    赞同 展开评论