나는이 포함 된 파일이 있습니다올리고 예외, 파이썬
XYZname_1을
XYZname_2
내 스크립트에서 XYZname_3
나는 re.search에 사용하고 이름이 정확하지 않은지 확인하십시오. 나는 raise exception
입니다. 두 이름 모두 올바르지 않으면 첫 번째에 예외가 발생하고 "충돌"합니다. 즉 "사용자"는 두 번째 또는 세 번째 이름이 올바르지 않은지 여부를 알 수 없습니다.
for my_file in args.cpath:
contents = open(my_file).read()
replaced_contents = my_func(contents,my_file)
def my_func(my_file_contents, filename):
for x in range(0, 3):
#Some code here which is not related to the problem
#In this if-statement I check if it does not match with re.search
#I assume a for-loop should be here? but not sure how to implement it.
if not re.search(r'(.*)XYZname_{0}\(\)\) = .*;(.*)'.format(x+1), my_file_contents):
raise Exception("The name: XYZname_{0} was not found".format(x+1) + " in " + filename)
말할 수 있습니다 우리가 이전에 (그들이 잘못)
XYZnameHE_1이
XYZnameGJ_2
XYZnameAsd_3
그럼 내 스크립트를 말해야 파일에 다음과 같이 기록 된 본 이름 나에게 주어진 파일에서 XYZname_1,2,3을 찾을 수 없다.
물론 다른 이름도있을 수 있습니다. 다른 기능이 처리합니다. 이러한 이름은 XXXname_1,2 3 등으로 시작할 수 그리고 그들 중 하나가 누락 된 경우 내가 지금뿐만 아니라
을 하나에 대한 예외를 받아야 나는이 출력을 얻을 :
Exception: The name: XYZname_1 was not found in C:\Path
을하지만, 내가 좋아하는 것
Exception: The name: XYZname_1 was not found in C:\Path
Exception: The name: XYZname_2 was not found in C:\Path
Exception: The name: XYZname_3 was not found in C:\Path
Exception: The name: XXXname_2 was not found in C:\Path
이 문제를 해결하기위한 "우수 사례"가 무엇인지 알 수 없습니다. 하나의 옵션은 스크립트가 전체 파일을 살펴보고 "충돌"/ 레이즈를 끝내도록하는 것입니다. 아니면 문제가 발견되면 바로 "충돌"/ 제기 하시겠습니까? 왜냐하면 개발자는 모든 잘못된/잘못된 이름을 찾기 위해 스크립트를 여러 번 실행해야하기 때문입니다.
누락 된 이름을 목록에 저장 한 다음 목록에 항목이있는 경우 끝에 올리면 어떨까요? –