编程中的空格怎么加入,为什么编程要加空格

首页 > 上门服务 > 作者:YD1662023-10-29 09:37:41

文件夹里面有一些文件标题名称前面是空格,要批量删除。

编程中的空格怎么加入,为什么编程要加空格(1)

可以在ChatGPT中输入提示词如下:

你是一个Python编程专家,要完成一个批量重命名文件标题的任务,具体步骤如下:

打开本地电脑文件夹:E:\National Geographic Kids

读取文件夹里面的所有mp4文件;

如果文本标题中开头第一个字符中是空格,则将文件标题中的这个空格删除掉;

注意:每一步都要输出信息

如果删除空格后的文件标题和文件夹中其他标题名重复,则在文件标题后加上一个“new”,以便进行区别;

程序运行后,大部分成功,一部分没成功,错误信息如下:

处理文件: Cats vs. Dogs Read Aloud.mp4

发现开头空格: Cats vs. Dogs Read Aloud.mp4

重命名为:Cats vs. Dogs Read Aloud.mp4

Traceback (most recent call last):

File "d:\Python\deletesapceinfilename.py", line 25, in <module>

os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))

FileexistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'E:\\National Geographic Kids\\ Cats vs. Dogs Read Aloud.mp4' -> 'E:\\National Geographic Kids\\Cats vs. Dogs Read Aloud.mp4'

编程中的空格怎么加入,为什么编程要加空格(2)

ChatGPT的回复是:

你的系统把 "Cats vs. Dogs Read Aloud.mp4" 和 " Cats vs. Dogs Read Aloud.mp4" 当成是同一个文件,即使我们在文件名中间加入了"_temp"。这可能是因为在 Windows 系统中,文件名的开头和结尾的空白字符会被自动忽略。

一个可能的解决方案是,我们可以先把文件移动到一个临时文件夹,然后再移动回原来的文件夹并重命名。以下是一种可能的实现:

import os

import shutil

# 定义文件夹路径和临时文件夹路径

folder_path = 'E:\\National Geographic Kids'

temp_folder_path = 'E:\\National Geographic Kids\\temp'

# 如果临时文件夹不存在,创建临时文件夹

if not os.path.exists(temp_folder_path):

os.makedirs(temp_folder_path)

# 读取文件夹里的所有文件并存储文件名

filenames = [f for f in os.listdir(folder_path) if f.endswith('.mp4')]

# 遍历文件名

for filename in filenames:

print(f'处理文件:{filename}')

# 检查文件名开头是否有空格

if filename.startswith(' '):

print(f' 发现开头空格:{filename}')

new_filename = filename.lstrip() # 删除开头空格

# 检查新文件名是否已存在

if new_filename in filenames:

print(f' 文件名冲突,添加"new"')

new_filename = new_filename.rsplit('.', 1)[0] 'new.' new_filename.rsplit('.', 1)[1]

# 将文件移动到临时文件夹并重命名

shutil.move(os.path.join(folder_path, filename), os.path.join(temp_folder_path, new_filename))

# 将文件从临时文件夹移回原文件夹

shutil.move(os.path.join(temp_folder_path, new_filename), os.path.join(folder_path, new_filename))

print(f' 重命名为:{new_filename}')

else:

print(' 文件名未改变')

# 删除临时文件夹

os.rmdir(temp_folder_path)

print('所有文件处理完成')

运行修改后的Python代码,成功!

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.