开发者社区> 问答> 正文

linux里面python调用系统命令问题?报错

想用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行的数据



展开
收起
爱吃鱼的程序员 2020-06-10 14:09:15 504 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    os.system("<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">awk -F','-vvar="$lie" '{print$var}' test_csv.csv>lines.txt")回复<aclass='referer'target='_blank'>@Karblue:感谢你的回复,按照你的方法已经取出来了回复<aclass='referer'target='_blank'>@songoex:我晕。你的lie是用shell读出来的。当然不行了。应该是lie=raw_input()os.system("awk-F','-vvar=""+lie+""'{print$var}'test_csv.csv>lines.txt")命令提示没有报错,但是却打印了test_csv.csv里面的全部数据试试这个:os.system("awk -F','-vvar="$lie" '{print$var}' test_csv.csv>lines.txt")命令没有报错,但是却打印了test_csv.csv里面的全部数据

    2020-06-10 14:09:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载