重命名多个csv文件

时间:2018-07-28 18:24:41

标签: python renaming

我遇到以下问题:在我的目录中,我有许多文件夹都包含带有以下格式名称的csv文件:

00000562834-2018-07-27-file-8.csv

为了使这些文件可以在python中按比例使用,我必须以公式的形式(“ xxxxxxxxxxxx-year-month-day-file-hour”)插入名称。但是,前几位(在这种情况下为00000562834)是随机的,因此我无法创建自动使用所有文件的代码。

因此,我的问题是:有人知道如何删除所有csv.file中的前12位数字吗?不幸的是,手动更改所有内容无法缩放。

3 个答案:

答案 0 :(得分:0)

使用正则表达式。 re.sub

import re
s = "00000562834-2018-07-27-file-8.csv"
print( re.sub(r"\d{11}-", "", s) )

输出:

2018-07-27-file-8.csv

答案 1 :(得分:0)

这是使用pathlib和rglob方法的解决方案。

from pathlib import Path
rootfolder = '/home/nicolaso/foo/bar/'  # example

for f in Path(rootfolder).rglob('*-file-*.csv'):
  new_name = f.name.split('-', 1)[1]
  f.rename(f.with_name(new_name))

如果您实际上不想重命名文件,则无论如何都可以在for循环中对其进行处理。

答案 2 :(得分:0)

import os
import glob
import re

for file in glob.glob("*.csv"):
    os.rename(file, re.sub(r"\d+-", "", file))