python - 如何为文件名添加一个字段,该字段填充从解析的 pdf 中提取的每一行数据的文件名?
问题描述
我正在解析目录中的文件并将数据编译成 csv。我想通过创建一个名为“标签”的列将每个文件的文件名添加到我的输出中。以下是我当前有效的代码。我只需要添加文件名(标签)。我将不胜感激任何帮助。
import sys
import os
from pyresparser import ResumeParser
output = 'EMAIL,SKILLS,'
for filename in os.listdir('/Users/NSam/Documents/resume/directory'):
output += '\n'
d = ResumeParser('/Users/NSam/Documents/resume/directory/' + filename).get_extracted_data()
for key, value in d.items():
if str(key) == 'email':
output += str(value) + ','
if str(key) == 'skills':
for skillkey in value:
output += str(skillkey) + ','
sys.stdout.write(output)
with open('/Users/NSam/Documents/resume/directory/output.csv', 'w') as f:
print('', output, file=f)
解决方案
似乎您上面的代码缺少您写入 csv 文件的部分。DictWriter
我通常喜欢使用标准库中的写入 csv 文件csv
。下面是它如何工作的代码片段。
对其进行测试,看看它是否适用于您的代码。
from csv import DictWriter
from os import listdir
with open('file.csv', 'w') as write_file:
for fl in listdir():
dict_writer = DictWriter(write_file,
['file_name', 'test1', 'test2']
)
dict_values = {'file_name':fl, 'test1':'Hello2', 'test2':"Hello3"}
dict_writer.writerow(dict_values)
编辑
根据下面的评论,我添加了for fl in listdir('path/to/file')
这将列出所有文件和目录,path/to/file
并将它们作为 csv 中的第一列。
EDIT2所以下面只是复制和粘贴您的代码并添加我认为会使其添加文件名的内容。看起来您使用的方式是output
您可以在添加换行符后将其添加filename
到右侧。output
测试一下,看看它是否适合你。 我想说这不是在 python 中写入 csv 文件的首选方式。最简单的方法是使用上面提到的 csv 包
import sys
import os
from pyresparser import ResumeParser
output = 'EMAIL,SKILLS,'
for filename in os.listdir('/Users/NSam/Documents/resume/directory'):
output += '\n'
output += filename + ','
d = ResumeParser('/Users/NSam/Documents/resume/directory/' + filename).get_extracted_data()
for key, value in d.items():
if str(key) == 'email':
output += str(value) + ','
if str(key) == 'skills':
for skillkey in value:
output += str(skillkey) + ','
sys.stdout.write(output)
with open('/Users/NSam/Documents/resume/directory/output.csv', 'w') as f:
print('', output, file=f)
推荐阅读
- java - Spring工具套件未显示创建方法是什么原因
- python - 如何禁用组合框中的特定索引/es或项目/s?
- node.js - 我需要管理员权限才能移动文件(node.js)
- javascript - Wordpress - .js 文件加载但什么也不做
- c - while 循环和 getchar() - 大输入
- java - 在没有 Main 方法的 Java 类库中从文件中读取数据
- void - 我如何证明依赖类型语言中的基本不等式
- java - Java Multipart 文件到 blob 然后返回到 Image 有大量随机字符
- python - 如何获得透视变换*结果*的坐标?
- c - 如果我使用“=+”而不是“+=”运算符,是否可以让 GCC 警告我?