2016-06-02 3 views
0

소스 파일 (예 : 파이썬에서)을 읽으려고하고 특정 문자가 두 번 공백으로 바뀌려고합니다. , 은 이러한 모든 것을 대입합니다..파일에서 특정 문자의 발생을 바꾸고 계산하십시오 (파이썬)

here에서, 나는 (이 마다 한 줄를 다시 쓴다하더라도) 원하는대로 정확히 작동이

#!/usr/bin/env python3 
import fileinput 

with fileinput.FileInput(fileToSearch, inplace=True, backup='.bak') as file: 
    for line in file: 
     print(line.replace(specificChar, ' '), end='') 

를 사용합니다.

그러나 은 전체 숫자를 계산하는 방법을 찾을 수 없습니다.; 그때 나에게하지 파이썬 보인다 line.replace에 대해 한 번씩 counter과 한 번 line을 통과 할 것이기 때문에 그 노력

counter = 0 
if is specificChar in line: 
    counter += 1 

불구하고 효율적인하지 않을 것입니다.

내가 고려할 수있는 다른 구현이 있습니까?

답변

1

사용 .count은 교체하기 전에 라인에있는 문자의 발생 수를 계산하려면 다음과 같이 답변

count = 0 
for line in file: 
    count += line.count(specificChar) 
    print(line.replace(specificChar, ' '), end='') 
+0

감사합니다. 설명에서 언급 한 것처럼 두 번 선을 가로 지르지 않습니까? 나는 이것이 효율적인 접근법이 아니냐 아니냐고 걱정한다. 아니면 아마도 너무 비효율적 인 것이 아닙니다. –

+0

설명과 같이 for 루프 * 하나씩 계산하는 것보다 읽기 쉽고 빠릅니다. –