Объединить ввод из двух разных файлов в отдельный файл

Я хочу сгенерировать следующую строку (и)

1 & {\QPCSymbols\XeTeXglyph 2}  & \textarabic{الحمدلله} & \texttt{!} & \verb$\XeTeXglyph 2$  \\
\hline

Допустим, первый номер n а второй n+1, содержание \textarabic получается из f_nusoos и содержание \texttt от f_keys, Оба файла имеют одинаковое количество строк.

Я создал скрипт Python3, который должен дать мне то, что я хочу, но я получаю новые символы строки (\n).

Вот что у меня так далеко,

#! python3
import linecache

f_nusoos = 'symbol_nass_list.txt'
f_keys   = 'symbol_key_list.txt'
contentfile = open('content.tex', 'w+', encoding="utf-8")

theLine = " "

for x in range(3):
  contentfile.write('{} & {{\QPCSymbols\XeTeXglyph {}}}  & \\textarabic{{{}}} & \\texttt{{{}}} & \\verb$\XeTeXglyph {}$  \\\\'.format(x+1, x+2,linecache.getline(f_nusoos, x+1).rstrip('\n'), linecache.getline(f_keys, x+1), x+2).rstrip('\n'))
  contentfile.write('\hline')

Содержание content.tex после исполнения есть,

1 & {\QPCSymbols\XeTeXglyph 2}  & \textarabic{بسم الله الرحمن الرحيم} & \texttt{!
} & \verb$\XeTeXglyph 2$  \\\hline2 & {\QPCSymbols\XeTeXglyph 3}  & \textarabic{بسم الله الرحمن الرحيم} & \texttt{"
} & \verb$\XeTeXglyph 3$  \\\hline3 & {\QPCSymbols\XeTeXglyph 4}  & \textarabic{بسم الله الرحمن الرحيم} & \texttt{#
} & \verb$\XeTeXglyph 4$  \\\hline

Мое ожидание, однако,

1 & {\QPCSymbols\XeTeXglyph 2}  & \textarabic{بسم الله الرحمن الرحيم} & \texttt{!} & \verb$\XeTeXglyph 2$\\
\hline
2 & {\QPCSymbols\XeTeXglyph 3}  & \textarabic{بسم الله الرحمن الرحيم} & \texttt{"} & \verb$\XeTeXglyph 3$\\
\hline
3 & {\QPCSymbols\XeTeXglyph 4}  & \textarabic{بسم الله الرحمن الرحيم} & \texttt{#} & \verb$\XeTeXglyph 4$\\
\hline

Кажется, проблема в новой строке, вставляемой после texttt{CONTENT, Я не знаю, почему это так.

Содержание f_nusoos.txt:

بسم الله الرحمن الرحيم
بسم الله الرحمن الرحيم
بسم الله الرحمن الرحيم

Содержание f_keys.txt:

!
"
#

1 ответ

Я смотрел на это слишком долго.

Вместо

contentfile.write('{} & {{\QPCSymbols\XeTeXglyph {}}}  & \\textarabic{{{}}} & \\texttt{{{}}} & \\verb$\XeTeXglyph {}$  \\\\'.format(x+1, x+2,linecache.getline(f_nusoos, x+1).rstrip('\n'), linecache.getline(f_keys, x+1), x+2).rstrip('\n'))

так должно быть

contentfile.write('{} & {{\QPCSymbols\XeTeXglyph {}}}  & \\textarabic{{{}}} & \\texttt{{{}}} & \\verb$\XeTeXglyph {}$  \\\\'.format(x+1, x+2,linecache.getline(f_nusoos, x+1).rstrip('\n'), linecache.getline(f_keys, x+1).rstrip('\n'), x+2))

rstrip() должен быть для ввода из файла, а не для счетчика.

Другие вопросы по тегам