【发布时间】:2014-10-08 19:34:26
【问题描述】:
我有一堆文件,我用:
def list_files(path):
# returns a list of names (with extension, without full path) of all files
# in folder path
files = []
for name in os.listdir(path):
if os.path.isfile(os.path.join(path, name)):
files.append(name)
return files
images = list_files('.')
>>> images
['file1.jpg', 'file2.jpg', 'file3.jpg']
我还有一个类似的列表:
>>> b
['ren', 'sans', 'ren']
我不想重命名图像并在b中附加相应的字符串,所以得到:
file1-ren.jpg
文件 2-sans.jpg
文件3-ren.jpg
for imgs in images :
os.rename(imgs,''.join(imgs + b for f in b))
TypeError: cannot concatenate 'str' and 'numpy.ndarray' objects
我这样想好吗? 谢谢
【问题讨论】:
-
ren/sans/ren如何变成ren/ren/ren?
-
您想要
imgs + f而不是imgs + b在您的join中吗? -
另请注意,
os.listdir没有为其返回的名称指定任何特定顺序。 . . -
抱歉 ren/sans/ren 的错字
-
os.listdir 以与 'ls' 完全相同的顺序返回文件。所以我想这也是 OP 和大多数 shell 脚本所期望的。
标签: python