White_sky 发表于 2024-11-29 22:15:54

没什么b用的python脚本(批量更改文件夹内所有文件格式)

本帖最后由 White_sky 于 2024-11-29 22:21 编辑

这是一个nbcs的没用脚本,诞生的原因是我下载资源时下载下来了大堆千奇百怪被更改过不同的后缀名的文件,索性脑子一抽,就写了个批量更改文件后缀的脚本,功能如他的名字一样,交互后输入一个文件夹路径,他会自动把路径下的所有文件格式更改为zip,可能windows系统有自带的我不知道的类似功能的东西吧,虽然感觉nbcs但是写都写了,分享一下吧( )


import os


def batch_rename_to_zip():
    """
    Prompt the user to input a directory path, and change the extension of all files in the specified directory to '.zip'.
    """
    # Prompt the user to enter the directory path
    directory = input("请输入想要操作的文件夹路径:")

    # Check if the specified directory exists
    if not os.path.isdir(directory):
      print(f"目录 '{directory}' 不存在,请检查路径是否正确。")
      return

    # Loop through all files in the directory
    for filename in os.listdir(directory):
      # Construct the full file path
      file_path = os.path.join(directory, filename)

      # Skip directories
      if os.path.isfile(file_path):
            # Separate the file name and extension
            base, _ = os.path.splitext(filename)
            # New file path with .zip extension
            new_file_path = os.path.join(directory, f"{base}.zip")
            # Rename the file
            os.rename(file_path, new_file_path)
            print(f"已将 '{filename}' 重命名为 '{base}.zip'")

    print("所有文件的后缀已更改为 .zip")


# 使用方法
batch_rename_to_zip()



娱乐法师火布偶 发表于 2024-11-29 22:30:32

如果是我实现的话,肯定就会变成要改的后缀还有文件夹路径等各种参数都是读取.ini的配置文件了,只能说是职业习惯了;P

164895785 发表于 2024-11-29 22:44:23

我也有类似的脚本,复制代码到TXT,改一下文件路径,再把文件名后缀改成bat即可

如下面所示,我把下载的东西都丢到E:\1的这个名为“1”的文件夹
@echo off
setlocal enabledelayedexpansion

set "sourceFolder=E:\1"

for %%F in ("%sourceFolder%\*") do (
    set "fileName=%%~nF"
    set "fileExt=%%~xF"

    :: 移除可能存在的点(.)以判断是否为空后缀或乱码后缀
    set "cleanExt=!fileExt:.=!"

    :: 如果清理后的扩展名为空,或者不是.rar/.7z/.zip,则重命名
    if "!cleanExt!"=="" (
      ren "%%F" "!fileName!.rar"
    ) else (
      :: 转换扩展名为小写以进行比较
      set "validExt=0"
      for %%e in (.rar .7z .zip) do (
            if /I "!fileExt!"=="%%e" set "validExt=1"
      )
      if "!validExt!"=="0" ren "%%F" "!fileName!.rar"
    )
)

echo Done.
endlocal

凯诺斯 发表于 2024-11-29 22:45:17

批量更改文件后缀还是有些用处的,不用自己手动一个个更改{:6_169:}

cdcai 发表于 2024-11-30 00:00:18

这个脚本是在什么软件上运行?感觉bat文件比较方便

chisono7 发表于 2024-11-30 00:07:49

其实这种让我们自己填的 还是写个配置ini更合适

石豆豆 发表于 2024-11-30 01:04:06

本渣渣还是喜欢用自己一直常用的老工具
https://www.gamemale.com/thread-145241-1-1.html

不过python似乎兼容的平台更多?
感觉批量重命名的需求也不少。泥潭里都有好多分享不同工具的批量改名工具。什么时候系统能自带这功能啊。

sinhotiger 发表于 2024-11-30 01:18:31

感谢楼主的分享,这确实会很方便,不过确实也和大家说的一样,有个ini文件来配置会更好。

娱乐伙伴琴键猴 发表于 2024-11-30 01:26:01

使用python实现这样的小功能真的是很方便呢

2297988 发表于 2024-11-30 01:29:22

挺有用的呢,就我而言,可以更改一些批量整理的文档=L=,然后排序排好

黑达克 发表于 2024-11-30 03:04:44

确实坛内大部分资源为了防和谐,在上传网盘的时候都会先更改过后缀名,下载后有脚本可以批量更改回zip后缀还是很方便的。

2302594 发表于 2024-11-30 06:50:07

这种小功能其实挺方便的

you9632587 发表于 2024-11-30 07:22:05

对于泥潭的文件来说还挺好用的吧,基本都是改过后缀的

相见忧 发表于 2024-11-30 09:13:11

感觉挺好用的,有这个脚本后可以直接一次性下载完,然后统一更改

Makima 发表于 2024-11-30 17:12:01

在论坛,感觉需要自动解压,即自动修改后缀,默认密码为gamemale

书の妖怪 发表于 2024-11-30 18:56:48

我现在在用的bandzip能自动识别是不是压缩包,所以即使不改后缀名解压缩也挺方便的,推荐尝试https://img.gamemale.com/album/202306/15/171711zvufjffrlbffhb76.png.thumb.jpg

不是卖萌的基佬 发表于 2024-12-1 09:53:57

对需要常用改文件的人帮助挺大的

tuxonstar 发表于 2024-12-1 12:52:16

有时候确实是很需要这个工具呢

多塔尔号 发表于 2024-12-1 17:56:57

挺好用的样子 马上试试看啦

提尔特 发表于 2024-12-1 17:56:59

只要是工具总会有用到他的地方 也是谢谢大佬的制作了
页: [1] 2
查看完整版本: 没什么b用的python脚本(批量更改文件夹内所有文件格式)