2017-11-20 23 views
0

나는이 파일을 명확한 방법으로 요청할 수 있기를 바랍니다. 매우 초보자 인 파이썬과 포럼에서 일반적으로 그렇게하기를 바랍니다. 시작!os.system을 사용하여 여러 파일에서 .py 파일을 조작합니다.

내 문제는 현재 os.system()을 사용하여 디렉토리 내의 모든 파일에서 프로그램을 실행할 수 있다는 것입니다 (이것은 다른 테이블 시리즈와 교차하는 ASCII 테이블의 디렉토리입니다. 일치하는 항목을 찾을 수 있습니다.

import os 

for filename in os.listdir('.'): 
os.system('stilts tmatch2 ifmt1=ascii ifmt2=ascii in1=intern in2= %s matcher=2d values1='col1 col2' values2='col1 col2' params=5 out= %s-table.fits'%(filename,filename)) 

그래서 할 것입니다 희망하는 모든 '이름'은 죽마로 알려진이 프로그램을 운영한다. 필자는이 중단됩니다 추측/때문에 아포스트로피의 존재 '에서 작동하지 않습니다에 대한 어떤 메신저 문법을 방해해야하는 코드 자체의 줄? (내가 틀렸다면 나를 바로 잡으십시오)

다음으로 'in os.system() w ith ""대신. 그러나 이것은 코드 전체에서 파일 이름을 나타 내기 위해 % s 표기법을 사용하지 못하게합니다 (적어도 어쨌든 나는 확실합니다).

import os 

for filename in os.listdir('.'): 
os.system("stilts tmatch2 ifmt1=ascii ifmt2=ascii in1=intern in2= %s matcher=2d values1='col1 col2' values2='col1 col2' params=5 out= %s-table.fits"%(filename,filename)) 

이것은 이제 실행되지만 분명히 작동하지 않습니다. 이는 % s 입력이 inteferes이기 때문입니다.

어떻게하면 해결할 수 있습니까? % s를 사용하지 않고 'filename'에 의해 주어진 다른 모든 파일을 참조 할 수있는 대체 방법이 있습니까?

미리 감사드립니다. 다시 코딩 해 주시고이 포럼을 사용하면서 미안합니다.

+0

params없이 os.listdir()을 사용하면 python 파일과 동일한 폴더에 목록이 생기고 (".") param을 사용하면 무엇을 받게 될지 믿습니다. –

답변

0

os.system()에 익숙하지 않지만, 다르게 동작하기 전에 해당 메소드로 보내는 문자열에 대해 약간의 변경을 시도해보십시오.

당신은 파이썬에서 당신은 당신이 변수에 당신의 명령을 "합"문자열을 저장할 수 수와 같이 파일 이름을 추가하는 것이 알고 있어야합니다 : 사용하는 경우이다 작동 할 수

os.system(commands+filename+othercommands+filename) 

다른 문제 :

for file in os.listdir() 

당신은 이름의 문자열 대신 파일 형식을 알고있을 수 있습니다. 이 파일이 다른 유형인지 확인하려면 filename.name과 같은 메소드를 사용해보십시오.

죄송합니다. 내 대답은 테스트 할 수 없지만 사용중인 컴퓨터가 Python을 다운로드하는 데 너무 느립니다.