在 "join "的打印输出中不需要的双反斜杠 (Python 3.7.3)

问题描述 投票:0回答:1

我正在使用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 ----- ']

我所有的定界符在页码前后都有双反斜杠 我不明白为什么。我错过了什么?非常感谢你的建议

python-3.7
1个回答
1
投票

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 ----- ']

0
投票

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 ----- ']
© www.soinside.com 2019 - 2024. All rights reserved.