我正在创建一个小脚本,该脚本将根据不同条件重命名文件夹中的文件。我曾尝试使用此功能,但目前仍处于停滞状态
f = []
for file in os.walk(outputfolder):
f.append(file)
在文件夹(c:\ folder)中,我有2个文件:file1.csv,file2.csv
我如何创建一个在文件夹内执行的循环,并对每个文件执行类似的操作
if(file1.csv.find(1) > 0)
do this
else
do this
谢谢,我已经尝试了一段时间,但找不到解决方案
for root, dirs, files in os.walk("path/to/folder"):
for filename in files:
if "1" in filename:
do_something()
else:
do_something_else()
使用时os.walk
,它将返回目录树的生成器。试想一下这样的测试目录:
C:\temp
| \subdir
| | subfile1.txt
| | subfile2.txt
| file1.txt
| file2.txt
list(os.walk)
将产生:
[("C:\\temp", ["subdir"], ["file1.txt","file2.txt"]),
("C:\\temp\\subdir", [], ["subfile1.txt","subfile2.txt"])]
也就是说,每次迭代都会root, list_of_directories_in_root, list_of_files_in_root
为原始参数中的每个子目录生成。因此,我们os.walk
以相同的方式进行迭代:
for root, dirs, files in os.walk("path/to/folder"):
确实,您实际上并不在乎root
或dirs
,但是,如果您必须重命名文件(或其他名称),则至少root
需要这样做,因为您会这样做os.rename(os.path.join(root, filename), "newname.txt")
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句