bash printf "\x00\x00\xFF\x00" | dd bs=4 seek=$(($y*$width+$x)) of=/dev/fb0
에서 은 모니터 픽셀의 너비이므로 x
, y
좌표의 빨간색 픽셀을 화면에 표시 할 수 있습니다.16 진수로 파이썬 하위 프로세스
저는 파이썬을 사용하여 이미지의 색상 값을 검색하고 이전 bash 명령을 호출하고 파이썬에서 찾은 값을 넣기를 원합니다. 내가 가진 하위 프로세스 호출하면
는 다음 \x
문자 서브 프로세스가 작동하지 않으면
Traceback (most recent call last):
File "./sub.py", line 30, in <module>
subprocess.call(command, shell=True)
File "/usr/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
TypeError: execv() arg 2 must contain only strings
:
command = 'printf "\x00\x00\xFF\x00" | dd bs=4 seek=276200 of=/dev/fb'
subprocess.call(command, shell=True)
을 나는이 오류가 발생합니다. Formatting a command in python subprocess popen 을하지만 난 정말 그것을 얻을하지 않습니다
command = 'printf "test" | dd bs=4 seek=2 of=test.txt'
subprocess.call(command, shell=True)
나는이 같은 몇 가지 흥미로운 링크를 발견했다. 서브 프로세스에
\x
문자를 넣을 수 있습니까? 어떻게? 다른 방법이 있습니까? 모든
먼저 당신의 도움에 대해 감사합니다 :
은 대단히EDIT 감사드립니다.
나는 트릭을하는 것을 발견했습니다. 나는 이것이 이것을하는 가장 좋은 방법이라고 생각하지 않지만 그것이 효과가있다.
printf "\x00\x00\xFF\x00"
은 정상적으로 작동하며 이상한 문자 �
을 인쇄합니다. 그러나 파이썬 서브 프로세스 subprocess.call('printf "\x00\x00\xFF\x00"', shell=True)
에서 호출하면 오류 TypeError: execv() arg 2 must contain only strings
가 발생합니다. 이처럼 백 슬래시를 벗어날 때 subprocess.call('printf "\\x00\\x00\\xFF\\x00"', shell=True)
은 �
이 아닌 \x00\x00\xFF\x00
을 출력하므로 터미널에서 바로 printf와 똑같지는 않습니다. 나는 여러 가지 다른 방법으로 도피하려했지만 �
을 얻지 못했습니다. 나는 이유를 정확히 모른다.
그래서 이런 작은 printf.bash
파일을 만든 :
#!/bin/bash
printf $1
을 그리고이 같은 서브 프로세스를 호출하고 있습니다 :
subprocess.call('./printf.bash "\\x00\\x00\\xFF\\x00"', shell=True)
나는 내가 원하는 �
를 얻을.
subprocess.call('printf "\\x00\\x00\\xFF\\x00"', shell=True)
당신이
이진 데이터가 들어있는 문자열을 명령 줄 인수로 셸에 전달할 수있는 방법이 있습니까? 있다면, 그것을 사용하는'command' 문자열을 생성하십시오. – martineau
왜'subprocess'를 사용하고 있습니까? 파일을 열고 Python에서 직접 파일에 쓸 수 있습니다. 'with open ("/ dev/fb", "wb")을 fb : fb.seek (276200); fd.write ('\ x00 \ x00 \ xff \ x00')' – chepner
고마워, 몰랐어, 재미있어 보인다. 이걸 시험해 보겠다.'dd' 옵션'bs = 4'은 어떨까? fb.seek와? – Lucien