对于python,我正在编写os.rename()
用于重命名文件的代码
到目前为止,我有:
[os.rename(f, f.replace('New', '-'))
for f in os.listdir('.') if not f.startswith('.')]
我试图做的是从C:\Users\MyName\Desktop\pythonVSC
调查C:\Users\MyName\Desktop\pythonVSC\forTest
和更改所有情况New
到-
在forTest
我有两个.txt
文件名New
和New_
我了解做什么,.replace
做什么.listdir
,也.startwith
做什么。
我的问题是,如果我改变'.'
中os.listdir('.')
的语句来'./somePath'
我得到的错误所看到如下
Exception has occurred: FileNotFoundError
[WinError 2] The system cannot find the file specified: 'New.txt' -> '-.txt'
File "C:\Users\MyName\Desktop\pythonVSC\rename.py", line 29, in <listcomp>
[os.rename(f, f.replace('New', '-')) for f in os.listdir('./forTest') if not f.startswith('.')]
File "C:\Users\MyName\Desktop\pythonVSC\rename.py", line 29, in <module>
[os.rename(f, f.replace('New', '-')) for f in os.listdir('./forTest') if not f.startswith('.')]
我试着更换os.listdir('.')
用os.listdir('forTest')
,os.listdir('C:\Users\MyName\Desktop\pythonVSC\forTest')
以及任何其他变化
我在这里做错了什么?
您要引用的文件在另一个目录中,但是os.rename
不知道。
最简单的解决方案是仅更改到另一个目录:
os.chdir('./forTest')
[os.rename(f, f.replace('New', '-')) for f in os.listdir('.') if not f.startswith('.')]
或者,更简单地说,通过完整路径:
dirname = './forTest'
for f in os.listdir(dirname):
if f.startswith('.'):
continue
f_new = f.replace('New', '-')
os.rename(*(os.path.join(dirname, fname) for fname in (f, f_new)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句