IPython 변수를 bash 명령에 대한 인수로 전달
Ipython/Jupyter 노트북에서 bash 명령을 실행하여 python 변수의 값을 인수로 전달하는 방법은 다음과 같습니다.
py_var="foo"
!grep py_var bar.txt
(분명히 나는 그랩을 하고 싶습니다.foo그리고 문자 그대로의 문자열이 아닙니다.py_var)
일반해
캣빌츠가 제안한 바와 같이,{..}:
dir_path = "/home/foo/bar"
!cp file1 {dir_path}
그것의 행동은 보다 더 예측 가능합니다.$..예: 다른 문자열을 연결하려는 경우sub_dir당신의 길로,$기대했던 결과를 주지 않을 것입니다.{..}할 수 있는 일:
!cp file1 {dir_path + sub_dir}
초기(편집) 답변
간단한 경우 변수 이름 앞에 다음과 같은 기호를 붙일 수 있습니다.$.
예
파일을 복사하고 싶다고 말합니다.file1이름이 지정된 파이썬 변수에 저장된 경로로dir_pth:
dir_path = "/home/foo/bar"
!cp file1 $dir_path
이피톤 또는 주피터 노트에서
위에서 언급한 것처럼 변수의 내용과 변수를 연결하는 방식에 따라 예상치 못한 결과가 발생할 수 있으므로 일반적인 솔루션을 사용하는 것이 좋습니다.
원시 문자열
원시 문자열 사용에 대한 관련 토론(앞머리에 다음과 같이 붙음)r변수를 전달하려면 Ipython 변수를 문자열 인수로 셸 명령에 전달을 참조하십시오.
다음 구문도 사용할 수 있습니다.
path = "../_data/"
filename = "titanicdata.htm"
! less {path + filename}
@Catbuilts가 지적했듯이,$문제가 있습니다.주요 예제를 포함하지 않고 보다 명확하게 표시하려면 다음을 수행합니다.
afile='afile.txt'
!echo afile
!echo $PWD
!echo $PWD/{afile}
!echo {pwd+'/'+afile}
그러면 다음과 같은 이점을 얻을 수:
afile.txt
/Users/user/Documents/adir
/Users/user/Documents/adir/{afile}
/Users/user/Documents/adir/afile.txt
그냥 덧셈일 뿐입니다.제 경우, 그리고 이 질문의 일부 예에서 보듯이, 제 주장은 공백이 있는 파일 이름이었습니다.그 경우 제가 약간 다른 구문을 사용해야 했습니까?"$VAR"예를 들면,
touch "file with spaces.txt"
echo "this is a line" > "file with spaces.txt"
echo "this is another line" >> "file with spaces.txt"
echo "last but not least" >> "file with spaces.txt"
echo "the last line" >> "file with spaces.txt"
cat "file with spaces.txt"
# The variable with spaces such as a file or a path
ARGUMENT="file with spaces.txt"
echo $ARGUMENT
# The following might not work
cat $pwd$ARGUMENT
# But this should work
cat $pwd"$ARGUMENT"
이것이 도움이 되길 바랍니다.;)
언급URL : https://stackoverflow.com/questions/35497069/passing-ipython-variables-as-arguments-to-bash-commands
'programing' 카테고리의 다른 글
| 발송인.호출 시작: 람다를 시스템으로 변환할 수 없습니다.위임 (0) | 2023.05.09 |
|---|---|
| Git 하위 모듈을 하위 디렉터리에 추가하려면 어떻게 해야 합니까? (0) | 2023.05.04 |
| Android xml 오류: RelativeLayout(@id/LinearLayout_acc, @id/ProgressBar_statusScreen)이 있는 "지정된 이름과 일치하는 리소스를 찾을 수 없습니다" (0) | 2023.05.04 |
| 명령줄을 사용하여 커밋 메시지를 검색하는 방법은 무엇입니까? (0) | 2023.05.04 |
| git: 지점이 X 커밋으로 앞서 있습니다. (0) | 2023.05.04 |