我正在使用Python 3.7.3 (默认情况下,2019年4月24日,15:29:51),并希望使用 "加入" 来构造一个定界符列表,用于将一个巨大的文本文件分割成单个文件。.txt文件是一本书的OCR版本,页数由以下字符串分隔。
"------[页码]1494------"
1494代表总页数,所以我需要1494个定界符,涵盖从1到1494的整个范围。
作为一个较长的脚本的一部分,我写了以下内容 输入 来创建定界符列表。
import os
import os.path
from os.path import dirname, join
import re
chunk_count=0
page_range=range(1, 1495)
delimiters=[]
results=[]
search_terms=["insul", "insel", "insuln", "inseln", "insula", "insulae"]
in_file="C:\\Users\\mobarget\\Google Drive\\ACADEMIA\\Insularity in early modern Europe\\Hederich_SchulLexikon_cleaned.txt"
out_directory="C:\\Users\\mobarget\\Google Drive\\ACADEMIA\\Insularity in early modern Europe\\Hederich_Lexikon_chunks"
with open(in_file, encoding="utf-8", errors="ignore") as f:
data = f.read()
for x in page_range:
delimiter=join('----- ', str(x),' / 1494 ----- ')
delimiters.append(delimiter)
print(delimiters[:5])
The 产出 我得到的是。
['----- \\1\\ / 1494 ----- ', '----- \\2\\ / 1494 ----- ', '----- \\3\\ / 1494 ----- ', '----- \\4\\ / 1494 ----- ', '----- \\5\\ / 1494 ----- ']
我所有的定界符在页码前后都有双反斜杠 我不明白为什么。我错过了什么?非常感谢你的建议
os.path.join
是用于加入目录与 os.path.sep
('\\'
在Windows上)。) 你要 str.join
,这是一个关于字符串的方法。 但你并不真的需要 join
,只是一个格式字符串和一个列表的理解。
>>> delimiters = [f'----- {page} / 1494 ----- ' for page in range(1,1495)]
>>> delimiters[:5]
['----- 1 / 1494 ----- ', '----- 2 / 1494 ----- ', '----- 3 / 1494 ----- ', '----- 4 / 1494 ----- ', '----- 5 / 1494 ----- ']
str.join
必须是来自一个 可迭这意味着你必须给它一个列表、集合、字典等。
试试 ''.join(list)
句法。
page_range=range(1, 1495)
delimiters=[]
for x in page_range:
delimiter=''.join(['----- ', str(x),' / 1494 ----- '])
delimiters.append(delimiter)
print(delimiters[:5])
['----- 1 / 1494 ----- ',
'----- 2 / 1494 ----- ',
'----- 3 / 1494 ----- ',
'----- 4 / 1494 ----- ',
'----- 5 / 1494 ----- ']