如何使用 python 和 pandas 重命名子文件夹中的多个 .Json 文件

桑帕贡努鲁

我在尝试重命名大量子文件夹中的 Json 文件时遇到了困难。我想要做的是用计数变量替换 json 文件。因为,每个 .json 文件在其各自的文件夹中都以 messages_1.json 结尾。

这里的 Person_1、Person_2、Person_3、......、Person_n 是收件箱文件夹内的各个子文件夹

示例文件结构

- C:/abc/def/ghi/klmn/opq/rst/uvw/xyz/messages/Inbox:
   - Person_1
     - message_1.json
   - Person_2
     - message_1.json
   - Person_3:
      - message_1.json
   .
   .
   .
   .
   - Person_n:
      - message_1.json

此外,我想将它们保存为单个熊猫数据框,然后将其导出为 csv 文件,我可以在其中进一步处理创建的数据框。

这是我到目前为止尝试过的并且卡住了:

我试过的代码

directory = os.path.dirname(os.path.realpath(sys.argv[0]))
for root, dirs, files in os.walk("C:/abc/def/ghi/klmn/opq/rst/uvw/xyz/messages/inbox/"):
    
    for name in files:
        
        if name.endswith((".json")):
            folder_names = os.path.relpath(root, directory)
            
            json_files = os.path.join(folder_names, name)

我想得到的输出

- Person_1
  - message_1.json
- Person_2
   - message_2.json
- Person_3:
  - message_3.json
   .
   .
   .
   .
- Person_n:
 - message_n.json

All replaced json names and then a single csv file with all json files

任何帮助将不胜感激我无法理解如何获得这个

埃里克·特鲁特

使用pathlib建立数据框,然后可以重命名文件。

from pathlib import Path
import pandas as pd

pth = Path("C:/abc/def/ghi/klmn/opq/rst/uvw/xyz/messages/inbox/")

data = [(f, f.parent, f.stem, f.suffix)
        for f in pth.rglob('*.json')]

# load into dataframe
df = pd.DataFrame(data=data, columns=['pth', 'dname', 'fname', 'suffix'])

# create new filename
df['new_name'] = (
  df['fname'].str.split('_').str[0] +
  '_' +
  (df.index + 1).astype(str) +
  df['suffix']
)

# now rename each file
for row in df.itertuples():
    row.pth.rename(Path(row.dname) / row.new_name)
      

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用python和os.walk()重命名子文件夹中的文件

使用zmv重命名子文件夹中的文件

python:通过子文件夹名称重命名子文件夹中的文件

使用父文件夹的名称重命名子文件夹中的文件

使用子文件夹标签重命名子文件夹中的文件

使用python重命名多个子文件夹中的多个文件

如何重命名子文件夹或zip文件中的文本文件

如何使用批处理脚本重命名多个文件夹和子文件?

使用python重命名目录中的多个文件夹

如何重命名多个文件夹中的多个文件?

使用完整目录路径重命名子文件夹中的特定文件

在文件夹,子文件夹和多个文件中递归查找和重命名

如何使用python将放在多个嵌套文件夹中的文档移动并重命名为新的单个文件夹?

如何使用目录文件夹和使用 Applescript 的选定文件夹重命名选定文件夹中的文件

Python脚本递归重命名文件夹和子文件夹中的所有文件

如何仅重命名子文件夹而不更改父文件夹名称

我可以使用Powershell基于.CSV文件重命名子文件夹中的文件吗

使用Excel中的名称映射,使用Python重命名文件夹中的文件

在Python中重命名文件夹

使用python从文件夹中按顺序重命名文件

如何使用一个命令重命名多个文件夹中的多个文件

如何重命名子文件夹递归下的所有md类型文件?

使用 R 中的函数从多个文件夹中复制相同的文件并根据文件夹结构重命名文件

如何使用累进编号重命名多个文件夹?

重命名子文件夹中的文件并上传

重命名子文件夹中的文件

重命名文件夹中的所有文件也重命名子文件夹

如何在Python中将存储在文件夹中的多个json文件读入不同的字典中?

如何在包含特定文本的文件夹中搜索文件并在Python中重命名该文件