Python 从文件名中获取单词,并将其压缩并存储为变量
我有一个包含两个单词的.pdf文件目录;名字和姓氏作为文件名,zipcode;i、 e.“RON船长11222.pdf” 我想,根据每个文件,从目录中的每个文件中获取单词NAME和number ZIPPython 从文件名中获取单词,并将其压缩并存储为变量,python,pandas,python-3.7,Python,Pandas,Python 3.7,我有一个包含两个单词的.pdf文件目录;名字和姓氏作为文件名,zipcode;i、 e.“RON船长11222.pdf” 我想,根据每个文件,从目录中的每个文件中获取单词NAME和number ZIP import os for filename in os.listdir(config.Total): if filename.endswith(".pdf"): 正如我稍后将使用每个名称一样,我将查找用于重命名的实际名称。i、 下面是我试图在逻辑上完成的全部内容;但我认为以上是问题的
import os
for filename in os.listdir(config.Total):
if filename.endswith(".pdf"):
正如我稍后将使用每个名称一样,我将查找用于重命名的实际名称。i、 下面是我试图在逻辑上完成的全部内容;但我认为以上是问题的一部分:
for filename in os.listdir(config.Total):
if filename.endswith(".pdf"):
data1 = pd.read_excel(config.Excel1)
df = pd.DataFrame(data1)
header = df.iloc[0]
row_numberd1 = df[df['Member Name'].str.contains(Name)].index.min()
row_numberd12 = df[df['Member Address Line 3'].str.contains(Zip)].index.min()
if row_numberd1 == row_numberd12: # When rows match of NameUp and Zip var in DF1
rowMatched = row_numberd1
print("Match Found")
print(rowMatched)
MemberID = df['ID'][rowMatched]
MemberI = str(MemberID)
with open("./pdfs/ID/" + MemberI + ".pdf", "wb") as outputStream:
output.write(outputStream)
我没有试图将这些存储到数据帧中。我想搜索excel文件数据框以查找名称和zip在同一行中的位置。然后使用该行号获取列值作为新名称。您可以使用:
for filename in os.listdir(config.Total):
if filename.endswith(".pdf"):
First_Name, Last_Name, Zip = filename.replace(".pdf",'').split()
Name = First_Name+Last_Name
然后您可以按预期使用Name和Zip变量我认为glob模块是一个很好的用例
我假设您的数据将遵循标准模式,即名字、姓氏和邮政编码,用空格分隔
import os
import glob
path = r'\your\dir'
files = glob.glob(os.path.join(path) + '\*.pdf')
pdfs = [os.path.basename(f) for f in files] # pass the names into a list.
import pandas as pd
df = pd.DataFrame({'PDF' : pdfs}) # make a data frame with the file name.
df['PDF'] = df['PDF'].str.replace('.pdf','') # remove the PDF element,
# assign your variables to columns
df['First Name'] = df['PDF'].str.split(' ',expand=True)[0]
df['Last Name'] = df['PDF'].str.split(' ',expand=True)[1]
df['Zip'] = df['PDF'].str.split(' ',expand=True)[2]
简单地声明‘First_Name’、‘Last_Name’和‘Zip’将自动从每个文件的名称中获取它?这并不是简单地声明@CaptainRon,而是将其拆分为文件名本身就是一个字符串。这似乎回答了我问题的第一部分;现在第二部分在这里:如何使用DF中的值重命名:谢谢,我不想将这些值存储到数据帧中。我想搜索excel文件数据框以查找名称和zip在同一行中的位置。然后使用该行号获取列值作为新名称。能否显示一些excel数据框的示例?另外,您想将pdf名称改右还是复制?