2009-03-04 2 views
1

파이썬을 통해 모든 파일을 다음과 같은 한 줄로 인쇄하려면 어떻게해야합니까?현재 디렉토리의 모든 파일을 인쇄하는 파이썬 한 줄자

python -c "import sys;print '>>',sys.argv[1:]" | dir *.* 

파이썬으로 파이프하는 법을 특히 알고 싶습니다. -c. DOS 또는 Cygwin 응답이 허용됩니다. 당신이 파이프를 사용하려는 경우 귀하의 질문에이 같이 일부 서식을 적용하려면

+1

파이썬을 사용하는 것보다 더 좋은 방법이 될 것 같습니다 ... –

+0

이것은 실제로 라이너에 없습니다! 빈 라인도 계산되는 코드 행에 대한 매우 까다 롭다 정의를 따르지 않으면! – hasen

+0

정확히 무엇을하려고합니까 ?? dir *. * 이미 목록이 모두 있습니다. 그래서 요점은 무엇입니까? – hasen

답변

4

y o는 데이터를 읽을 수 있습니다 에 sys.stdin을 읽어 파이썬 스크립트. 예 :

ls -al | python -c "import sys; print sys.stdin.readlines()" 

내가 원하는 것은 무엇인지 분명하지 않습니다 (어쩌면 어리 석다). 혼란은 Python 스크립트에서 데이터를 파이핑하는 예에서 비롯됩니다.

6
python -c "import os; print os.listdir('.')" 

,

python -c "import os; print '\n'.join(['>>%s' % x for x in os.listdir('.')])" 

, xargs 사용

ls | xargs python -c "import sys; print '>>', sys.argv[1:]" 

또는 역 따옴표를 :

python -c "import sys; print '>>', sys.argv[1:]" `ls` 
+1

감사합니다. 어떻게 파이프하는지 알고 싶습니다. – Luis

4

당신은 모든 파일을 인쇄하려면 : 당신이 ">>"전에 각을 포함 할 경우에만 현재 디렉토리의 파일

find . -type f -maxdepth 1 

을 인쇄하려면

find . -type f 

을 line

find . -type f -maxdepth 1 | xargs -L 1 echo ">>" 

"> > "및 $ 경로를 에코에서

find . -type f -maxdepth 1 | xargs -L 1 printf ">>%s\n" 

이것은 모두 cygwin을 사용하고 있습니다.

+0

+1 - 파이썬은 멋지다 (나는 팬이다).하지만 때로는 이미 작업을 수행하기 위해 만들어진 툴이있다. :-) –

3
ls | python -c "import sys; print sys.stdin.read()" 

단지 알고 싶습니다 파이프

+0

사실이지만, 그 때의 요점은 무엇인가? – hasen

+0

은 본질적으로 아무런 의미가 없지만 약간 더 복잡하고 유용한 명령어의 시작점입니다. – cobbal

2

정상으로 표준 입력을 읽을 어떻게 출력을 공급하기를 원한다면 당신은 길을 잘못 라운드 파이프를했다

불구하고 파이프 'dir'을 파이썬에 넣으려면 'dir'이 왼쪽에 있어야합니다.

분명히 파이썬 기본 솔루션 예 :

dir "*.*" | python -c "import sys;[sys.stdout.write('>>%s\n' % line) for line in sys.stdin]" 

(당신이 블록 도입 세미콜론 후 한 줄에 성명 '에 대한'. 허용되지 않기 때문에 지능형리스트와 해킹입니다) ('os.listdir')은 실제로 더 좋습니다.

1

구체적으로 알고 싶습니다 방법 모든 프로그램을 알고는 점이다

이 프로그램을 통해 cobbal's answer

배관이보기의 프로그램의 관점에서 투명 볼

-c 파이썬에 파이프 표준 입력 스트림에서 입력을 얻고 있습니다.

일반적으로 말하면, 쉘 명령은

65,은 표준 출력을 "자위대"를 내뿜 그래서 만약

, 그때 B는 표준 입력

파이썬 표준 입력 스트림에 "자위대"를 가져 B의 입력되는 출력을 리디렉션 sys.stdin

+0

한가지는 좀 신경 쓰여. 왜'python -c'를 사용하고 싶습니까? – hasen

+0

py 파일을 저장하지 말고 cmd 행을 사용하여 실행하십시오. – Luis

관련 문제