python 을 이용 하여 설정 파일 을 읽 는 방법
인터페이스 자동화 테스트 스 크 립 트 를 작성 할 때,때때로 우 리 는 코드 에서 변 수 를 정의 하고 변수 에 고정된 값 을 부여 해 야 한다.이러한 고정된 변 수 를 통일 적 으로 관리 하고 조작 하기 위해 서 우 리 는 일반적으로 이러한 고정된 변 수 를 일정한 규칙 으로 지정 한 프로필 에 설정 합 니 다.나중에 이러한 변수 와 변수 값 을 사용 해 야 할 때 코드 를 통 해 데 이 터 를 읽 거나 이 프로필 에 기록 하면 됩 니 다.프로필 을 사용 하 는 장점 은 프로그래머 가 쓰 지 않 아 도 프로그램 을 더욱 유연 하 게 할 수 있 습 니 다.따라서 python 언어 에 대해 configparser 모듈 을 봉 하여 지정 한 형식의 파일(파일 이름 은 일반적으로 xxx.ini)을 처리 합 니 다.설정 파일 의 형식 은 windows 아래 ini 설정 파일 과 비슷 하고 하나 이상 의 절(section)을 포함 할 수 있 으 며,절 마다 여러 개의 인자(키=값)를 가 질 수 있 습 니 다.
주:현재 python 3 버 전 작업 프로필 모듈 이름 은 configparser 로 변경 되 었 으 며,기 존 python 2 버 전 프로필 모듈 이름 은 ConfigParser 로 변경 되 었 습 니 다.
configparser 모듈 기능 소개
configparser 모듈 은 주로 ConfigParser()클래스,RawConfigParser()클래스,SafeConfigParser()클래스 등 을 제공 합 니 다.다음 그림 에서 configparser 모듈 을 가 져 오 면 모듈 에 포 장 된 모든 클래스 를 보고 사용 할 수 있 습 니 다.
configparser 모듈 에 서 는 주로 포 장 된 ConfigParser()클래스 가 제공 하 는 방법 으로 프로필 을 조작 하고 프로필 에 대해 데이터 읽 기와 쓰기 등 을 합 니 다.
구체 적 인 이 모듈 python 홈 페이지 는 완전한 소개 가 있 습 니 다.https://docs.python.org/3/library/configparser.html
설정 파일 의 형식 은 다음 과 같 습 니 다.
설정 파일 읽 기 및 지정 한 데이터 읽 기 방법
ConfigParser()클래스 는 설정 파일 읽 기 동작,지정 한 설정 파일 의 section,section 의 모든 key-value 읽 기 등 방법 을 제공 합 니 다.구체 적 인 방법 은 다음 과 같 습 니 다.
코드 예제:
import configparser
cf = configparser.ConfigParser() #
# read(filename)
filename = cf.read(r'G:\api_test\configfile.ini',encoding='utf-8')
# sections() section,
sec = cf.sections()
print(sec)
# section option
opt = cf.options("mysql")
print(opt)
# items section
value = cf.items("mysql")
print(value)
print(dict(value)) #
# get(section,option) section option , string/int
mysql_host = cf.get("mysql","host")
mysql_password = cf.getint("mysql","port")
print(mysql_host,mysql_password)
다음 코드 출력 을 실행 합 니 다:프로필 쓰기(삭제 작업)및 제공 하 는 조작 방법
ConfigParser()클래스 는 수정 프로필 데 이 터 를 기록 하 는 방법 을 제공 합 니 다.구체 적 인 방법 은 다음 과 같 습 니 다.
설정 파일 에서 다음 정 보 를 편집 합 니 다:
다음 코드 편집:
import configparser
conf = configparser.ConfigParser()
conf.read(r'G:\api_test\configfile.ini',encoding='utf-8')
conf.set("code", "code", "6666") # section option
conf.set("code", "age", "123") # section option
conf.has_section("code")
conf.has_option("code","age")
#conf.remove_section("test")
#conf.remove_option("test","haha")
if 'test' not in conf.sections():
conf.add_section("test") # section
conf.set("test", "haha", "123") # section option
file = open(r'G:\api_test\configfile.ini', 'w',encoding='utf-8')
conf.write(file)
file.close()
실행 종료 후 다음 과 같 습 니 다:수정 프로필 을 편집 하려 면 프로필 을 닫 는 것 을 기억 하 십시오.
위 에서 ConfigParser()클래스 를 사용 하여 프로필 을 읽 고 쓰 는 방법 을 제공 하면 프로필 을 편리 하 게 조작 할 수 있 습 니 다.그러나 설정 파일 에 데 이 터 를 읽 고 기록 하 는 코드 는 패키지 되 지 않 았 습 니 다.설정 파일 을 사용 하여 데 이 터 를 읽 고 기록 해 야 하기 때문에 설정 파일 을 읽 고 쓰 는 작업 을 공공 모듈 로 밀봉 하 는 것 을 권장 합 니 다.설정 파일 의 데 이 터 를 읽 는 패 키 징 을 조작 할 경우 설정 파일 의 내용 은 다음 과 같 습 니 다.
새 readconfig.py 파일,패키지 에서 프로필 을 읽 는 코드 입 니 다.인 스 턴 스 는 다음 과 같 습 니 다.
import configparser
import os
class ReadConfig():
def __init__(self, filepath=None):
root_dir = os.path.dirname(os.path.abspath('.')) #
# print(" ",root_dir)
configpath = os.path.join(root_dir, "configfile.ini") #
# print(" ",configpath)
self.cf = configparser.RawConfigParser()
self.cf.read(configpath,encoding='utf-8')
def get_cookie(self, param):
value = self.cf.get("cookie", param)
return value
def get_sheet(self,param):
value = self.cf.get("sheet",param)
return value
def get_mysql(self,param):
value = self.cf.get("mysql",param)
return value
def get_code(self,param):
value = self.cf.get("code",param)
return value
이렇게 클래스 로 봉 인 된 후 후속 다른 모듈 은 프로필 데 이 터 를 읽 어야 합 니 다.프로필 을 읽 는 코드 를 반복 적 으로 쓰 지 않 고 이 봉 인 된 클래스 를 직접 도입 하고 대상 호출 클래스 에 봉 인 된 방법 을 실례 화하 면 됩 니 다.이상 은 python 을 이용 하여 프로필 의 상세 한 내용 을 읽 는 방법 입 니 다.python 에서 프로필 을 읽 는 데 관 한 자 료 는 다른 글 에 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.