나는 여러 파일을 반복하고 있습니다. 개별 파일에 특정 길이가없는 경우 해당 파일의 행을 마스크하여 사용되지 않도록하고 모양이 앞으로해야 할 특정 계산에 대해 동일하게 유지되도록합니다. 지금까지 가지고있는 코드는 다음과 같습니다.파일 끝에 x 줄의 새 행 추가 Python
pattern = "C:\Users\Name\Folder\july\mid_2014-07-2?-00.csv"
bad_files=[]
for filename in glob.iglob(patterm):
num_lines = sum(1 for line in open(filename))
if num_lines!=144:
s = 144 - num_lines
bad_files.append(filename)
print bad_files
여기까지는 144 줄이없는 파일 목록을 반환합니다. 내가하고 싶은 것은 파일에 144 줄이 없다면 (예를 들어 127 줄이있다) 파일의 끝에 빈 줄 수를 추가하여 144 줄을 만들고 싶습니다. . 그런 다음 파일의 모든 선을 마스크하여 원하는대로 모양이 유지되도록하고 싶지만 그 선은 특정 계산에 사용되지 않습니다. 이 루프에 's'개의 빈 줄을 파일의 끝에 추가하고 잘못된 파일의 모든 줄을 마스크하는 문을 추가하는 방법이 있습니까? 고려해야 할 일을 달성하기위한 쉬운 방법이 있습니까? 파일 이름이 있기 때문에 당신이 filename.write을 (할 수없는
for filename in glob.iglob(pattern):
with open(filename, 'r+a') as fd:
for num_lines, line in enumerate(fd): pass
# num_lines is now one *less* that the actual line count.
fd.write('\n' * max(0, 144 - num_lines))
주) : 당신이 정말로 처리를 위해 파일 이름의 목록이 필요하지 않은 경우
필자는 이것을 테스트하지 않았지만'filename.write ('\ n'* s)'처럼 간단 할 지 궁금합니다. –
@MattCremeens 작동합니다. 통역사를 해고하고 테스트했습니다. –
Thanks @ThomasMurphy. 또한, "... 잘못된 파일의 모든 줄을 숨 깁니다"라는 의미가 확실하지 않습니다. –