Python-예기치 않은 토큰`| '근처의 구문 오류

Premchand

아래 오류를 오랫동안 수정하려고했지만이 오류가 발생하는 이유를 찾을 수 없습니다. file직접 로그 파일 이름으로 바꾸려고 시도 day1했으며 파일의 총 단어 수를 제공하고 있습니다.

>>> import os
>>> ports =["1080"]
>>> os.chdir("/var/logs")
>>> for i in range(0, len(ports)):
...     file = os.popen("ls -al |grep -i access|grep -w %s.0|awk \'{print $9}\'" %ports[i]).read()
...     day1 = os.popen("sudo cat %s|wc -l" %file).read()
...
 sh: -c: line 1: syntax error near unexpected token `|'
 sh: -c: line 1: `|wc -l'

어떤 도움이라도 정말 감사합니다.

대답:

공백으로 인한 문제입니다. 공백을 제거하면 문제가 해결되었습니다.

file = os.popen("ls -al |grep -i access|grep -w %s.0|awk \'{print $9}\'" %ports[i]).read().strip()
데이비드 존스

이것은 shellnot python. 구문 오류는 다음에서 발생합니다 sh.

sh: -c: line 1: syntax error

관찰 한대로 공백을 제거하면 문제가 해결됩니다.

무슨 일이 일어나고 있는지 첫 번째 출력이 Python 문자열로 os.popen()할당 file되고 해당 문자열에 종료 줄 바꿈이 포함됩니다. 그 이유는 명령의 출력에 종료 줄 바꿈이 포함되기 때문입니다.

그래서 file문자열 "foo-access.0\n"이나 비슷한 것입니다.

즉, 두 번째 os.popen()전송 된 명령

sudo cat foo-access.0
| wc -l

유효한 셸 구문이 아닙니다 (일반적으로 파이프,, |줄을 시작할 수 없음).

공백을 제거하면 후행 줄 바꿈이 제거되므로 두 번째 명령 os.popen()은 다음과 같습니다.

sudo cat foo-access.0 | wc -l

모두 좋습니다.

다른 사람들이 언급했듯이이 스크립트는 다른면에서도 좋지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

bash의 예기치 않은 토큰`( '근처의 구문 오류

bash : 예기치 않은 토큰 근처의 구문 오류

예기치 않은 토큰`( '근처의 구문 오류

bash : 예기치 않은 토큰`-o '근처의 구문 오류

bash : 예기치 않은 토큰`( '근처의 구문 오류

makefile : 예기치 않은 토큰`, '근처의 구문 오류

bash : 예기치 않은 토큰`; '근처의 구문 오류

예기치 않은 토큰`( 'with mv! (build) 근처의 구문 오류

예기치 않은 토큰 '-bash 근처의 구문 오류

예기치 않은 토큰`$ 'in \ r'근처의 구문 오류

bash : 예기치 않은 토큰`} '근처의 구문 오류

-bash : 예기치 않은 토큰`; '근처의 구문 오류

예기치 않은 토큰 'then'근처의 구문 오류

awk : 예기치 않은 토큰`( '근처의 구문 오류

예기치 않은 토큰 근처의 크론 구문 오류

예기치 않은 토큰 '{'근처의 구문 오류

예기치 않은 토큰 '('근처의 구문 오류

예기치 않은 토큰`} '`근처의 구문 오류

예기치 않은 토큰`< '근처의 구문 오류

예기치 않은 토큰 근처의 구문 오류

예기치 않은 토큰 'iptables'근처의 구문 오류

Bash : 예기치 않은 토큰`else '근처의 구문 오류

예기치 않은 토큰 `fi` 근처의 구문 오류 - Linux

예기치 않은 토큰`< '근처의 구문 오류

Bash : 예기치 않은 토큰`else '근처의 구문 오류

예기치 않은 토큰`do 근처의 구문 오류

예기치 않은 토큰`} '근처의 구문 오류

bash : 예기치 않은 토큰 'do'근처의 구문 오류

예기치 않은 토큰 'elif'근처의 구문 오류

TOP 리스트

  1. 1

    C # 16 진수 값 0x12는 잘못된 문자입니다.

  2. 2

    Matlab의 반복 Sortino 비율

  3. 3

    librosa로 생성 된 스펙트로 그램을 다시 오디오로 변환 할 수 있습니까?

  4. 4

    PhpStorm 중단 점에서 변수 값을 볼 수 없습니다.

  5. 5

    종속 사용자 정의 Lightning 선택 목록 Level2 및 Level3을 설정한 다음 Lightning 구성 요소에서 Level2를 재설정하지만 Level2 캐시 데이터가 저장됨

  6. 6

    Watchdog 큐 이벤트를 사용하는 Python 병렬 스레드

  7. 7

    atob은 인코딩 된 base64 문자열을 디코딩하지 않습니다.

  8. 8

    dev 브랜치에 병합 할 때만 트리거하도록 bitbucket에서 AWS Codebuild로 웹훅을 설정하려면 어떻게해야합니까?

  9. 9

    2 개의 이미지를 단일 평면 이미지로 결합

  10. 10

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

  11. 11

    막대 그래프 위에 선이 표시되지 않음

  12. 12

    Python : 특정 범위를 초과하면 플롯의 선 색상을 변경할 수 있습니까?

  13. 13

    기능 선택을위한 Sklearn Chi2

  14. 14

    Ionic 2 로더가 적시에 표시되지 않음

  15. 15

    EventEmitter <string>의 컨텍스트 'this'가 Observable <string> 유형의 'this'메서드에 할당되지 않았습니다.

  16. 16

    매개 변수에서 쿼리 객체를 선언하는 방법은 무엇입니까?

  17. 17

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  18. 18

    아이디어 Intellij : 종속성 org.json : json : 20180813을 찾을 수 없음, maven에서 org.json 라이브러리를 가져올 수 없음

  19. 19

    일반 메서드에서 클래스 속성에 액세스하는 방법-C #

  20. 20

    식별자는 ORA-06550 및 PLS-00201로 선언되어야합니다.

  21. 21

    함수 호출 사이에 데이터를 저장하는 파이썬적인 방법은 무엇입니까?

뜨겁다태그

보관