python Batch重命名mac中的文件

时间:2013-10-20 21:05:09

标签: python macos

我正在尝试编写我的第一个脚本。 我一直在阅读有关python的内容,但我是股票。

我正在尝试编写一个脚本,它将重命名特定文件夹中的所有文件名。 这就是我到目前为止所做的:

import os
files = os.listdir('files_to_Change')
print (files)

从文件夹中获取所有文件名:

for i in files:
    if i == ".DS_Store":
        p = files.index(".DS_Store")
        del files[p]

如果mac不可见文件存在从列表中删除(这里可能是错误的)。

for i in files:
    oldName = i
    fileName, fileExtension = os.path.splitext(i)
    print (oldName)
    print (fileName)
    os.rename(oldName,fileName)

这是我库存的地方,我收到了这个错误:

输出:

FileNotFoundError: [Errno 2] No such file or directory: 'File.1'

在上面的部分我只是删除文件扩展名,但这只是开头。 我也试图用空格替换每个点,并将每个单词的第一个字母作为大写。

有人能指出我正确的方向吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

在您的示例中,当您获得files_to_Change目录中的文件列表时,您将获得没有目录名称的文件名:

>>> files = os.listdir('test_folder')
>>> print files[0]
.com.apple.timemachine.supported

因此,为了获得该文件的完整路径,无论您在目录树中,都应该使用文件名加入目录名称(files_to_Change):

import os
join = os.path.join

src = 'files_to_Change'
files = os.listdir( src )


for i in files:
    old = i
    new, ext = os.path.splitext ( old )
    os.rename( join( src, old ), join( src, fileName ))