作者davic (无所事事的人)
看板Python
标题[问题] 将第N个.docx 更名为List[n}.docx
时间Thu Oct 22 11:35:24 2020
我做了一个list, 要依LIST中的字串变更资料夹中的word档名
ex:
folder中 N个docx
第一份word = test1.docx
List[0] = 测试
第一个word = test2.docx
List[1] = 测试2
要将folder 中第一份word 改名为 测试.docx, 第二份改为测试2.docx
continue...
code 如下:
import os
from docx import Document
##把命名的存在下列目录的docnamelist.txt档里
NewNameListLocation = r"E:\Python"
list = []
##读docnamelist里的内容并显示:
with open(r'E:\Python\docnamelist.txt', 'r', encoding = "utf-8") as
nametorenew:
for content in nametorenew:
content_line = content.replace('\n','')
## print(content_line)
## print(content)
list.append(content_line)
##单纯检查是否有写入list中
for items in list:
print(items)
##下段是做更名的动作
##把要更名的DOC存在此FOLDER中
Doctargetpath = r"E:\Python\renamefiles"
oldnames = os.listdir(Doctargetpath)
i=0
a=0
for a in range(len(oldnames)):
print(oldnames[a])
path_name = Doctargetpath + "\\" + oldnames[a]
try:
document = Document(path_name)
except:
print("Error!!")
##将第N个DOC档名更名为LIST中的第N个字串
else:
newname = Doctargetpath + str(items[i]) + '.docx'
##try:
os.rename(path_name, newname)
i=i+1
但~~~~
error msg:
Traceback (most recent call last):
File
"C:/Programs/Python/Python38-32/renametest.py",
line 33, in <module>
os.rename(path_name, newname)
FileExistsError: [WinError 183] 当档案已存在时,无法建立该档案。:
'E:\\Python\\renamefiles\\renamefilesF - 复制 (10) - 复制.docx' ->
'E:\\Python\\renamefilesF.docx'
请问...我那里做错了?? 可以指导一下吗?? 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.140.47 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1603337726.A.A0A.html
※ 编辑: davic (125.227.140.47 台湾), 10/22/2020 11:40:34
※ 编辑: davic (125.227.140.47 台湾), 10/22/2020 13:43:41
1F:推 ddavid: 可能一:是不是有两个目标档名一样?那第二个当然就失败了 10/22 15:23
2F:→ ddavid: 可能二:我印象中Windows自己的rename不像linux的mv那样同 10/22 15:23
3F:→ ddavid: 时可以同时搬动位置并更名,因此第二个参数不应该带有路径 10/22 15:24
4F:→ ddavid: ,但我不确定Python的os.rename是否受到此性质影响(不在 10/22 15:24
5F:→ ddavid: Windows电脑前,目前没法测) 10/22 15:24
6F:→ davic: 应该是找不到路径..我把rename那段改成: 10/22 16:56
7F:→ davic: for n, oldname in enumerate(oldnamelist): 10/22 16:56
8F:→ davic: os.rename(os.path.join(path, oldname), 10/22 16:57
9F:→ davic: os.path.join(path, newnamelist[n] )) 10/22 16:57
※ 编辑: davic (125.227.140.47 台湾), 10/22/2020 16:58:25
10F:推 asd01248967: os.path.spilt试过吗? 10/23 03:53
11F:推 LP9527: 我站内你我写的版本了 10/24 02:12
12F:→ LP9527: 反正是 renamefilesF.docx 已经存在造成的 10/24 02:13