读取一个文件夹中的所有文件后,如何在python中从一个文件夹跳转到另一个文件夹?



我正在编写代码以连续检查许多文件夹和目录中的文件大小。

例如:我有多个目录,每个目录中有多个文件,每个文件夹中也有多个文件。

我的代码必须像sample1.txt, sample2.txt, sampl3.txt一样读取D:/coding/dir1/folder1中的所有文件。

读取文件后,它应该转到D:/coding/dir1/folder2并检查sample4.txt, sample5.txt, sample6.txt等,当读取目录中的所有文件夹时,它应该跳转到另一个目录(如D:/coding/dir2/folder1(。

让我知道我该如何实现这一目标。

D:/coding
- dir1
-- folder1
--- sample1.txt
--- sample2.txt
--- sample3.txt
-- folder2
--- sample4.txt
--- sample5.txt
--- sample6.txt
- dir2
-- folder1
--- sample7.txt
...

你可以编写一个递归函数,返回所有文件,然后读取它们:

import os
def read_folder(folder):
files = []
for f in os.listdir(folder):
f = os.path.join(folder, f)
if os.path.isdir(f):
files = [*files, *read_folder(f)]
else:
files.append(f)
return files

所以我有以下文件夹结构

D:coding
├───folder1
│       sample1.txt
│       sample2.txt
│
└───folder2
sample1.txt
sample2.txt

使用pathlib查找文件,使用stat函数获取文件大小。

from pathlib import Path
files = Path("D:/coding").rglob('*')
for f in files:
if f.is_file():
print(f'{str(f)} file size is : {f.stat().st_size}')

输出

D:codingfolder1sample1.txt file size is : 728
D:codingfolder1sample2.txt file size is : 2378
D:codingfolder2sample1.txt file size is : 247
D:codingfolder2sample2.txt file size is : 1486

我得到了解决方案。

import os
import re
import glob path1 = r'D:rmchal0xml'
os.chdir(path1)
print(os.getcwd())
listdir = os.listdir(path1)
print(listdir)
def txt_check(path):
os.chdir(path)
listdir = os.listdir(path)
for files in listdir:
if files.endswith('.txt'):
# txt_file= files.endswith('.txt')
file_size = os.path.getsize(files)
if file_size > 0:
print("this file has data: ", files, "with file size:", file_size, "in", os.getcwd())
print(listdir)
def file_size_check(path):
os.chdir(path)
print(os.getcwd())
listdir = os.listdir(path)
print(listdir)
for files in listdir:
if (files.find('.') == -1):
path2= os.path.join(path,files)
if files.lower()== 'nok':
print(files)
txt_check(path2)
else:
#path2 = os.path.join(path,files)
file_size_check(path2)
file_size_check(path1)

相关内容

  • 没有找到相关文章

最新更新