Python 遍历目录
Python loop through directories
我正在尝试使用 python 库 os
遍历我在根目录中的所有子目录,并定位特定文件名并重命名它们。
只是为了清楚这是我的树结构
我的 python 文件位于根级别。
我正在尝试做的是定位目录 942ba
循环遍历所有子目录并找到文件 000000
并将其重命名为 000000.csv
我目前的代码如下:
import os
root = '<path-to-dir>/942ba956-8967-4bec-9540-fbd97441d17f/'
for dirs, subdirs, files in os.walk(root):
for f in files:
print(dirs)
if f == '000000':
dirs = dirs.strip(root)
f_new = f + '.csv'
os.rename(os.path.join(r'{}'.format(dirs), f), os.path.join(r'{}'.format(dirs), f_new))
但这不起作用,因为当我 运行 我的代码时,由于某些原因,代码从 subduers
中删除了日期
任何人都可以帮助我了解如何解决这个问题吗?
一种更有效的遍历文件夹的方法,并且只有 select 您要查找的文件如下:
source_folder = '<path-to-dir>/942ba956-8967-4bec-9540-fbd97441d17f/'
files = [os.path.normpath(os.path.join(root,f)) for root,dirs,files in os.walk(source_folder) for f in files if '000000' in f and not f.endswith('.gz')]
for file in files:
os.rename(f, f"{f}.csv")
列表理解存储了您要查找的文件的完整路径。您可以将理解中的条件更改为您需要的任何内容。我经常使用此代码片段来查找特定类型的图像,或从 selected 文件中删除不需要的文件。
在 for 循环中,文件被重命名并添加 .csv
扩展名。
我会使用 glob 来查找文件。
import os, glob
zdir = '942ba956-8967-4bec-9540-fbd97441d17f'
files = glob.glob('*{}/000000'.format(zdir))
for fly in files:
os.rename(fly, '{}.csv'.format(fly))
我正在尝试使用 python 库 os
遍历我在根目录中的所有子目录,并定位特定文件名并重命名它们。
只是为了清楚这是我的树结构
我的 python 文件位于根级别。
我正在尝试做的是定位目录 942ba
循环遍历所有子目录并找到文件 000000
并将其重命名为 000000.csv
我目前的代码如下:
import os
root = '<path-to-dir>/942ba956-8967-4bec-9540-fbd97441d17f/'
for dirs, subdirs, files in os.walk(root):
for f in files:
print(dirs)
if f == '000000':
dirs = dirs.strip(root)
f_new = f + '.csv'
os.rename(os.path.join(r'{}'.format(dirs), f), os.path.join(r'{}'.format(dirs), f_new))
但这不起作用,因为当我 运行 我的代码时,由于某些原因,代码从 subduers
中删除了日期任何人都可以帮助我了解如何解决这个问题吗?
一种更有效的遍历文件夹的方法,并且只有 select 您要查找的文件如下:
source_folder = '<path-to-dir>/942ba956-8967-4bec-9540-fbd97441d17f/'
files = [os.path.normpath(os.path.join(root,f)) for root,dirs,files in os.walk(source_folder) for f in files if '000000' in f and not f.endswith('.gz')]
for file in files:
os.rename(f, f"{f}.csv")
列表理解存储了您要查找的文件的完整路径。您可以将理解中的条件更改为您需要的任何内容。我经常使用此代码片段来查找特定类型的图像,或从 selected 文件中删除不需要的文件。
在 for 循环中,文件被重命名并添加 .csv
扩展名。
我会使用 glob 来查找文件。
import os, glob
zdir = '942ba956-8967-4bec-9540-fbd97441d17f'
files = glob.glob('*{}/000000'.format(zdir))
for fly in files:
os.rename(fly, '{}.csv'.format(fly))