我有一个TSV文件是从CSV文件和一个包含markdown文件的文件夹转换而来的。我想做的是遍历目录中的文件,打开一个文件名(例如,“File_ID_1”)与列(列“ID”)中的值匹配的文件,从中提取其他相关内容(“Animal”和“Fruit”),并将这些内容分别添加到TSV文件的相应列中。
example.tsv
ID Data Animal Fruit
1 August
2 July
3 May
...
File names in a directory 'Desktop/Files':
File_ID_1
File_ID_2
File_ID_3
...
And markdown file looks like this:
File_ID_1
**Animal**: Cat
**Fruit**: Peach
...
This is what I've gotten so far.
## Extracting relevant contents from a matched md file
import csv
import os
import re
df = 'example.tsv'
directory = 'Desktop/Files'
id_to_row = {}
with open(df, 'r', newline='', encoding='utf-8') as tsv_file:
tsv_reader = csv.DictReader(tsv_file, delimiter='\t')
for row_idx, row in enumerate(tsv_reader):
id_to_row[int(row['ID'])] = row_idx
# Process markdown files
for filename in os.listdir(directory):
if filename.endswith('.md'):
id_match = re.match(r'File_ID_(\d+)\.md', filename)
if id_match:
file_id = int(id_match.group(1))
markdown_path = os.path.join(directory, filename)
with open(markdown_path, 'r', encoding='utf-8') as md_file:
content = md_file.read()
我的同事建议我使用Xpath表达式从文件中提取相关内容,但我还是一个初学者,我不知道如何将所有这些代码放在一起。我希望我的措辞是可以理解的。
1条答案
按热度按时间eufgjt7s1#
我将使用 regex 来提取信息,然后使用pandas
update
(.tsv
):Regex:[ demo ]
新
example.tsv
的输出(* 以表格格式 *):| ID|数据|动物|水果|
| --|--|--|--|
| 1 |八月|猫|桃|
| 2 |七月|||
| 3 |可以|||