使用 re 和 glob 库更改路径中的文件夹以进行写入
Changing a folder in a path for writing using re and glob libraries
我有两个目录:path/to/folder
和 path/to/otherfolder
,它们里面都有几个子目录:path/to/folder/TEST1
、path/to/folder/TEST2
、path/to/otherfolder/TEST1
、path/to/otherfolder/TEST2
,等等
我正在使用 folder_path = glob.glob('path/to/folder/*')
获取根文件夹中的所有子目录
然后我遍历每个子目录以获取其中的所有文件:
for folder in folder_path:
file_path = glob.glob(folder + '\*')
for files in file_path:
new_path = files.replace('folder', 'otherfolder')
with open(files, r) as f:
with open(new_path, 'wb') as wf:
do stuff
这不起作用,因为没有文件被写入。我想简单地将此行更改为 files.replace('\folder\', '\otherfolder\')
但我认为这行不通。
如果有人有任何想法,我想使用 Python 的 re
库?
看起来问题出在 glob 模式上。而不是:
file_path = glob.glob(folder + '\*')
你能试试吗
file_path = glob.glob(os.path.join(folder, '*'))
?
这将要求您 import os
在文件的顶部。
这里还有一个语法错误:
with open(files, r) as f:
应该是:
with open(files, 'r') as f:
我有两个目录:path/to/folder
和 path/to/otherfolder
,它们里面都有几个子目录:path/to/folder/TEST1
、path/to/folder/TEST2
、path/to/otherfolder/TEST1
、path/to/otherfolder/TEST2
,等等
我正在使用 folder_path = glob.glob('path/to/folder/*')
然后我遍历每个子目录以获取其中的所有文件:
for folder in folder_path:
file_path = glob.glob(folder + '\*')
for files in file_path:
new_path = files.replace('folder', 'otherfolder')
with open(files, r) as f:
with open(new_path, 'wb') as wf:
do stuff
这不起作用,因为没有文件被写入。我想简单地将此行更改为 files.replace('\folder\', '\otherfolder\')
但我认为这行不通。
如果有人有任何想法,我想使用 Python 的 re
库?
看起来问题出在 glob 模式上。而不是:
file_path = glob.glob(folder + '\*')
你能试试吗
file_path = glob.glob(os.path.join(folder, '*'))
?
这将要求您 import os
在文件的顶部。
这里还有一个语法错误:
with open(files, r) as f:
应该是:
with open(files, 'r') as f: