使用pdfplumber提取PDF转TXT出现多余双引号的问题求助
问题
使用pdfplumber提取PDF文本并转存为TXT文件时,遇到异常:部分行被自动添加了原PDF中不存在的双引号。操作流程是按页提取PDF文本,拆分后存入列表,再写入TXT,但列表中含单引号的字符串(比如Hi, I'm Varoujan Gorjian [...])被自动加上双引号,变成"Hi, I'm Varoujan Gorjian [...]"。尝试调整csv.writer的quotechar和quoting参数后仍未解决问题,怀疑是文本处理环节导致,相关代码如下:
for file in data: path = os.path.join(dataDirectory, str(file)) lines = [] pdffile = path with pdfplumber.open(pdffile) as pdf: pages = pdf.pages for page in pdf.pages: text = page.extract_text() for line in text.split('\n'): lines.append(line) csvFile = os.path.join(goalDirectory, str(file)[:-3]+'txt') # open CSV file with coded Text with open(csvFile, "w", newline='', encoding='utf-8') as converted: writer = csv.writer(converted) print(lines) for line in lines: writer.writerow([line])
提取后的列表示例:
['Black Hole – The Lost Transcript', 'Intro', "Hi, I'm Varoujan Gorjian, I'm a Research Astronomer at NASA's Jet Propulsion Laboratory.", "I've been challenged today to talk about once concept at five different levels of increasing", ...]
解决办法
核心原因:工具使用错误
你要生成的是TXT文件,却误用了csv.writer来写入——csv模块专为CSV格式设计,会自动对包含特殊字符(如单引号、换行符)的字段添加引号,这是CSV格式的规范行为,和pdfplumber的文本提取无关。最优修正:直接写入TXT
替换csv.writer的写入逻辑,改用文件对象的write()方法逐行写入,代码修改如下:
for file in data: path = os.path.join(dataDirectory, str(file)) lines = [] pdffile = path with pdfplumber.open(pdffile) as pdf: pages = pdf.pages for page in pdf.pages: text = page.extract_text() for line in text.split('\n'): lines.append(line) txtFile = os.path.join(goalDirectory, str(file)[:-3]+'txt') # 直接写入TXT文件 with open(txtFile, "w", encoding='utf-8') as converted: for line in lines: converted.write(line + '\n')
- 备选方案(不推荐):强制关闭CSV引号处理
如果一定要用csv.writer,可通过设置quoting=csv.QUOTE_NONE强制关闭引号自动添加,但需注意文本中若有逗号等CSV分隔符会引发格式问题,代码示例:
import csv # 保持前面的PDF文本提取逻辑不变 txtFile = os.path.join(goalDirectory, str(file)[:-3]+'txt') with open(txtFile, "w", newline='', encoding='utf-8') as converted: writer = csv.writer(converted, quoting=csv.QUOTE_NONE, escapechar='\\') for line in lines: writer.writerow([line])
内容的提问来源于stack exchange,提问作者Inhibitor_Aspirant
相关产品推荐
相关产品推荐

