遍历文件夹下的子文件夹的时候,文件夹名字包含逗号或者空格
时间: 2023-08-06 09:09:09 浏览: 50
在遍历文件夹下的子文件夹时,如果文件夹名字包含逗号或者空格,可以使用双引号将文件夹名字括起来,例如:
```
import os
root_dir = "path/to/root/dir"
for subdir, dirs, files in os.walk(root_dir):
# 将文件夹名字用双引号括起来
subdir = '"' + subdir + '"'
print("当前目录:", subdir)
for file in files:
print("文件名:", file)
```
这样可以确保文件夹名字包含逗号或者空格时也能正确地遍历子文件夹。
相关问题
使用bat遍历文件夹下的子文件夹的时候,文件夹名字包含逗号或者空格
在使用bat批处理遍历文件夹下的子文件夹时,如果文件夹名字包含逗号或者空格,可以使用双引号将文件夹名字括起来,例如:
```
@echo off
set "root_dir=path\to\root\dir"
for /r "%root_dir%" %%a in (*) do (
set "file=%%~nxa"
set "path=%%~dpa"
set "folder=%%~dpa"
set "folder=!folder:"=!"
echo 当前目录:!folder!
echo 文件名:!file!
)
```
这样可以确保文件夹名字包含逗号或者空格时也能正确地遍历子文件夹。注意,需要将变量名用双引号括起来,防止文件名或路径中的空格被解释为批处理指令的分隔符。同时,需要使用`!`来延迟解析变量,保证变量在运行时被解析。
遍历文件夹下及子文件夹下所有文件名
好的,可以使用以下脚本来遍历指定文件夹下及其子文件夹下的所有文件名:
```bash
#!/bin/bash
# 定义函数,递归遍历文件夹
traverse_folder() {
for file in "$1"/*; do
if [[ -d "$file" ]]; then
traverse_folder "$file"
else
echo "$file"
fi
done
}
# 调用函数,传入要遍历的文件夹路径
traverse_folder "/path/to/folder"
```
其中,`traverse_folder`函数用于递归遍历文件夹,如果遍历到的是文件夹则递归调用该函数,否则输出文件名。最后,调用函数时传入要遍历的文件夹路径即可。
如果想将遍历到的文件名保存到一个文件中,可以将`echo`语句替换为输出到文件的语句,例如:
```bash
echo "$file" >> file_names.txt
```
这样就可以将所有文件名输出到`file_names.txt`文件中。