我试图通过附加变量来重命名一堆文件。每个文件的变量值是从DataFrame DF中称为" Append"的列获得的(其中DF中的File_id与文件名匹配(。运行代码时,我会收到以下错误:
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'C:/Users/Downloads/Input/\DOC_001.xlsx' -> "C:/Users/Downloads/Input/\DOC_001_1 File Suffix, dtype: object.xlsx"
import os
import glob
dir = 'file path'
for root, directories, files in os.walk(dir):
for file in files:
filename, extension = os.path.splitext(file)
add_text = df.loc[df.FILE_ID.eq(filename), 'APPEND']
os.rename(os.path.join(root, file), os.path.join(root, "{}_{}{}".format(filename, add_text, extension)))
但是,如果我只使用具有固定字符串值的变量,则可以重命名文件。因此,以下代码有效:
import os
import glob
add_text = "File suffix"
dir = 'file path'
for root, directories, files in os.walk(dir):
for file in files:
filename, extension = os.path.splitext(file)
os.rename(os.path.join(root, file), os.path.join(root, "{}_{}{}".format(filename, add_text, extension)))
请注意,我没有在此处包含pandas dataframe的代码。
我能够弄清楚。
我将一个系列附加到文件名。相反,我需要首先使用item()
这是修改:
add_text = df.loc[df.FILE_ID.eq(filename), 'APPEND'].item()