对目录中的所有文件运行python脚本
第一次在这里发帖,希望有经验/尝试过的人能分享你的见解。。。在过去的几天几夜里,我一直在努力做到这一点。。。现在,我将无法在目录中的每个文件上循环此脚本 基本上,这两个脚本工作得非常好,它带来一个pdf文件并将其更改为excel工作簿。现在,我需要做的是检查所选目录中的所有文件并执行相同的工作对目录中的所有文件运行python脚本,python,for-loop,absolute-path,pdftotext,whatif,Python,For Loop,Absolute Path,Pdftotext,Whatif,第一次在这里发帖,希望有经验/尝试过的人能分享你的见解。。。在过去的几天几夜里,我一直在努力做到这一点。。。现在,我将无法在目录中的每个文件上循环此脚本 基本上,这两个脚本工作得非常好,它带来一个pdf文件并将其更改为excel工作簿。现在,我需要做的是检查所选目录中的所有文件并执行相同的工作 我一直被困在打开文件的阶段-这是不是说数据(pdf页面-数据[0])无法调用?或者我应该添加更多的阶段来引入数据集 我是否必须为数据集创建一个列表,以便我可以调用数据,因为您需要调用的数据不止一个。。这
我一直被困在打开文件的阶段-这是不是说数据(pdf页面-数据[0])无法调用?或者我应该添加更多的阶段来引入数据集 我是否必须为数据集创建一个列表,以便我可以调用数据,因为您需要调用的数据不止一个。。这就是python可以读取数据[0]的原因吗 修订脚本
# import
import os
import glob
import pdftotext
import openpyxl
from pathlib import Path
from string import ascii_uppercase
# open a pdf file
def to_excel(pdf_file):
with open(pdf_file,'rb') as f:
data = pdftotext.PDF(f)
# operate data to get titles, values
datas = data[0].split('\r\n')
finalData = list()
for item in datas:
if item != '':
finalData.append(item)
finalDataRefined = list()
for item in finalData:
if item != ' BCA Scheduled Maintenance Questions' and item != ' Do you suspect there is Asbestos at the property?' and item != ' Yes' and item != ' No' and item != '\x0c':
finalDataRefined.append(item.strip())
titles = list()
values = list()
for num, item in enumerate(finalDataRefined):
if num % 2 == 0:
titles.append(item)
else:
values.append(item)
# get an output file name
OPRAST = values[1]
filename = work_dir / f"{OPRAST}.xlxs"
# create an excel workbook
excel_file = openpyxl.Workbook()
excel_sheet = excel_file.active
excel_sheet.append([])
alphaList = list(ascii_uppercase)
for alphabet in alphaList:
excel_sheet.column_dimensions[alphabet].width = 20
excel_sheet.append(titles)
excel_sheet.append(values)
# save the excel workbook
excel_file.save(filename)
excel_file.close
# run a python script every file in a directory
alphaList = list(ascii_uppercase)
work_dir = Path(r"C:\Users\Sunny Kim\Downloads\Do Forms")
for pdf_file in work_dir.glob("*.pdf"):
to_excel(pdf_file)
我基本上知道你想做什么,但是你的代码的缩进不是那么可读。。。尤其是python 您的目标是为prefix dir中的每个pdf文件创建一个excel?或者将所有pdf文件聚合到一个excel文件中 下面的编码用于第一个目标 代码逻辑
#------------------导入部件-------------------
导入操作系统
导入glob
导入pdftotext
导入openpyxl
从字符串导入ascii_大写字母
从pathlib导入路径
def到excel(pdf文件):
将open(pdf_文件,'rb')作为f:#这将打开pdf文件
data=pdftotext.PDF(f)
#------操作数据,获取标题和值-----------
数据=数据[0]。拆分('\r\n')
finalData=list()
对于数据中的项目:
如果项目!='':
finalData.append(项目)
finalDataRefined=list()
对于finalData中的项目:
如果项目!='BCA计划维护问题和项目!='你怀疑酒店里有石棉吗?“和物品!=”“是”和项目!='“否”和“项目!=”\x0c':
finalDataRefined.append(item.strip())
标题=列表()
值=列表()
对于num,枚举中的项(FinalDataDefined):
如果num%2==0:
标题.附加(项目)
其他:
值。追加(项)
#--------------获取输出文件名---------------------
OPRAST=值[1]
filename=work_dir/f“{OPRAST}.xlxs”
#--------------创建excel文件表------------------
excel_file=openpyxl.Workbook()
excel\u sheet=excel\u file.active
excel\u sheet.append([])
alphaList=列表(ascii_大写)
对于字母列表中的字母:
excel表格。列尺寸[字母表]。宽度=20
excel\u表格。附加(标题)
excel\u工作表。追加(值)
#---------保存----------------
excel\u文件。保存(文件名)
excel\u文件.close
#--------主程序---------------
alphaList=列表(ascii_大写)
work\u dir=Path(r“C:\Users\Sunny Kim\Downloads\Do Forms”)
对于工作目录glob(“*.pdf”)中的pdf文件:
到excel(pdf文件)
我基本上知道您想要做什么,但您的代码缩进不太可读。。。尤其是python
您的目标是为prefix dir中的每个pdf文件创建一个excel?或者将所有pdf文件聚合到一个excel文件中
下面的编码用于第一个目标
代码逻辑
#------------------导入部件-------------------
导入操作系统
导入glob
导入pdftotext
导入openpyxl
从字符串导入ascii_大写字母
从pathlib导入路径
def到excel(pdf文件):
将open(pdf_文件,'rb')作为f:#这将打开pdf文件
data=pdftotext.PDF(f)
#------操作数据,获取标题和值-----------
数据=数据[0]。拆分('\r\n')
finalData=list()
对于数据中的项目:
如果项目!='':
finalData.append(项目)
finalDataRefined=list()
对于finalData中的项目:
如果项目!='BCA计划维护问题和项目!='你怀疑酒店里有石棉吗?“和物品!=”“是”和项目!='“否”和“项目!=”\x0c':
finalDataRefined.append(item.strip())
标题=列表()
值=列表()
对于num,枚举中的项(FinalDataDefined):
如果num%2==0:
标题.附加(项目)
其他:
值。追加(项)
#--------------获取输出文件名---------------------
OPRAST=值[1]
filename=work_dir/f“{OPRAST}.xlxs”
#--------------创建excel文件表------------------
excel_file=openpyxl.Workbook()
excel\u sheet=excel\u file.active
excel\u sheet.append([])
alphaList=列表(ascii_大写)
对于字母列表中的字母:
excel表格。列尺寸[字母表]。宽度=20
excel\u表格。附加(标题)
excel\u工作表。追加(值)
#---------保存----------------
excel\u文件。保存(文件名)
excel\u文件.close
#--------主程序---------------
alphaList=列表(ascii_大写)
work\u dir=Path(r“C:\Users\Sunny Kim\Downloads\Do Forms”)
对于工作目录glob(“*.pdf”)中的pdf文件:
到excel(pdf文件)
尝试将第二个脚本包装到函数中,并为abspath的每个元素调用它。它还有助于将所有导入语句保留在文件的顶部。感谢您的评论,我尝试使用函数(def)扭曲第二个脚本,并尝试了但仍然无法确定如何循环目录中的所有文件……您确定执行了data=pdftotext.PDF(f)
吗?尝试p