2016-11-05 2 views
0

python cmd 스크립트에 문제가 있습니다. 왜 작동하지 않는지 모르겠습니다. 내 코드에 문제가있을 수 있습니다. 내 Python 스크립트를 통해 cmdline에서 프로그램을 실행하려고합니다.sh : 1 : 구문 오류 : 예기치 않은 리디렉션 Python/Bash

그리고 임 bash는 오류 받고 "SH : 1 : 구문 오류 : 예기치 않은 리디렉션"

PLS는 (아나콘다) 스파이더를 사용하여 단지 생물 학자 임 :

임에 도움을/우분투

#!/usr/bin/python 

import sys 
import os 

input_ = sys.argv[1] 
output_file = open(sys.argv[2],'a+')  
names = input_.rsplit('.') 

for name in names: 
    os.system("esearch -db pubmed -query %s | efetch -format xml | xtract -pattern PubmedArticle -element AbstractText >> %s" % (name, output_file)) 
    print("------------------------------------------") 

답변

4

output_file은 파일 개체입니다. "%s" % output_file을 수행하면 결과 문자열은 "<open file 'filename', mode 'a+' at 0x7f1234567890>"과 같습니다. 오류 메시지 :이 os.system을 호출이 >>

command... >> <open file 'filename', mode 'a+' at 0x7f1234567890> 

<과 같은 명령을 실행하는 "재 지정을 예상치 못한 구문 오류"가 발생되는 것을 의미한다.

하면 해당 문제를 해결하려면, 파이썬 스크립트의 출력 파일을 열지 마십시오, 그냥 파일 이름을 사용 :

output_file = sys.argv[2] 
0

내가 가지고 다음 줄에 유사한 오류 :

os.system('logger Status changed on %s' %s repr(datetime.now()) 

사실로 nomadictype은 문제가 일반 OS 명령을 실행하는 중임을 나타냅니다. 명령에 특수 문자가 포함될 수 있습니다. 내 경우에는 <입니다.

그래서 대신에 크게 OS 명령을 변경, 난 그냥 추가 시세 및이 작품 :

os.system('logger "Status changed on %s"' %s repr(datetime.now()) 

지수는 전달 된 매개 변수의 내용 쉘의 보이지 않는합니다.