4 개의 텍스트 파일이 들어있는 폴더가 있습니다. 내 폴더에있는 파일의 크기를 확인하고 동일한 크기의 파일 만 열 수있는 코드를 프로그램하고 싶습니다. 누구든지 어떤 생각을 가지고 있습니까?python으로 디렉토리에있는 파일의 크기를 확인하는 방법은 무엇입니까?
이미이
import os
d=os.stat('H:/My Documents/211').st_size
4 개의 텍스트 파일이 들어있는 폴더가 있습니다. 내 폴더에있는 파일의 크기를 확인하고 동일한 크기의 파일 만 열 수있는 코드를 프로그램하고 싶습니다. 누구든지 어떤 생각을 가지고 있습니까?python으로 디렉토리에있는 파일의 크기를 확인하는 방법은 무엇입니까?
이미이
import os
d=os.stat('H:/My Documents/211').st_size
에있는 모든 파일의 크기를 인쇄합니다.
>>> import os
>>> basedir = 'tmp/example'
>>> names = os.listdir(basedir)
>>> names
['a', 'b', 'c']
그런 다음 당신은 이름에에 basedir
을 추가해야
>>> paths = [os.path.join(basedir, name) for name in names]
>>> paths
['tmp/example/a', 'tmp/example/b', 'tmp/example/c']
그런 다음 당신은 os.stat (경로)를 사용하여 (이름, 크기)의 쌍의 목록으로 그것을 켤 수 있습니다. st_size (내가 만든 예제 파일이 비어) : 다음
>>> sizes = [(path, os.stat(path).st_size) for path in paths]
>>> sizes
[('tmp/example/a', 0), ('tmp/example/b', 0), ('tmp/example/c', 0)]
그룹화 할 수 있습니다 함께 collections.defaultdict
사용하여 동일한 크기의 경로 :
>>> import collections
>>> grouped = collections.defaultdict(list)
>>> for path, size in sizes:
... grouped[size].append(path)
...
>>> grouped
defaultdict(<type 'list'>, {0: ['tmp/example/a', 'tmp/example/b', 'tmp/example/c']})
이제 당신은 크기에 따라 모든 파일을 얻는다면, 그들 모두를 열 수 있습니다 (이후를 종료하는 것을 잊지 마세요!) :
>>> open_files = [open(path) for path in grouped[0]]
도움 주셔서 감사합니다. 그룹화 된 항목을 목록에 넣고 CSV 파일에 기록하면 나중에 사용할 수 있습니다. – UserYmY
CSV 파일에서 원하는 내용에 따라 다릅니다. 크기가있는 행, filename1, filename2, filename3? – babbageclunk
내가 당신의 오류를 재현 할 수없는 노력했다. 난 당신이 제공하는 파일 이름이 잘못 같은데요
359415
359415
이
import os
print os.path.getsize('mydata.csv')
print os.stat('mydata.csv').st_size
을 얻을 수 있습니다. 이것은 당신이 os.listdir
를 사용할 수있는 디렉토리에있는 모든 파일을 보려면 폴더
my_dir = r'path/to/subdir/'
for f in os.listdir(my_dir):
path = os.path.join(my_dir, f)
if os.path.isfile(path):
print os.path.getsize(path)
두 번째로 저에게 감사드립니다. 그리고 동일한 크기의 파일을 열 수 있도록 어떻게 코딩 할 수 있는지 알고 있습니까? – UserYmY
그것은 당신이 뭔가를 시도한 것이 좋다. 아마도 그것은 당신이 원하는 것을하지 않았을 것입니다. 그것은 무엇을 했는가? 너는 무엇을 기대 했는가? – babbageclunk
인쇄 결과 d가 0으로 표시됩니다. 나는 파일의 크기를 비교하고 동일한 크기를 가진 파일을 열어보고 싶습니다. – UserYmY