簡體   English   中英

os.rename(source, destination) 文件名、目錄名或卷 label 語法不正確

[英]os.rename(source, destination) The filename, directory name, or volume label syntax is incorrect

import os

f = open("Names.txt", "r") 
names = f.readlines()

folder = r'C:\Users\e007l\Desktop\Rename\\'

count = 1

for file_name in os.listdir(folder):
    source = folder + file_name
    destination = folder + names[int(count)] + ".txt"
    os.rename(source, destination)
    count += 1
    res = os.listdir(folder)

print(res)
print(folder)

這應該將文件夾中文件的名稱更改為我列表中的名稱,但它不會簡單地給我錯誤消息:

[WinError 123] 文件名、目錄名或卷 label 語法不正確:'C:\Path\names1.txt' -> 'C:\Path\Beta\n.txt'

我的文本文件 Names.txt 里面有這個:

阿爾法貝塔德爾塔歐米茄

這些是我想給現有文件起的名字

可能是因為folder = r'C:\Users\e007l\Desktop\Rename\\'嗎?
路徑末尾有一個額外的反斜杠。

另外,您將names1.txt文件存儲在哪里?

有2個錯誤:

  1. 名稱未正確加載;
  2. 文件路徑未正確連接;
  3. 您從 1 開始計數,因此會引發 Index 錯誤。

這是一個似乎以您想要的方式工作的代碼。

import os

f = open("Names.txt", "r")
names = f.readline().split(' ')
print(f"{names = }")

folder = r'.\rename'

for i, file_name in enumerate(os.listdir(folder)):
    source = os.path.join(folder, file_name)
    destination = os.path.join(folder, names[i]) + ".txt"
    os.rename(source, destination)

res = os.listdir(folder)

print(res)
print(folder)

Output:

names = ['Alpha', 'Beta', 'Delta', 'Omega']
['Alpha.txt', 'Beta.txt', 'Delta.txt']
.\rename

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM