我有很多.tex
个文件(TeX / LaTeX),我正在编写一个分析这些文件的Python脚本。我只希望分析LaTeX文件,因此我想删除所有纯TeX文件。
我已经考虑过确保\begin{document}
包含在每个文件中,但这会拒绝相当多的文件,因为几个文件只是书中的章节,长列表或论文中的部分没有\begin{document}
命令。
有没有人知道如何过滤掉我的收藏品中的所有纯TeX文件?
答案 0 :(得分:1)
我认为,如果你想对可以使用\input
或\include
输入的文件保持敏感,那么这样做的方式就不太可能是完全万无一失的。但是,给定一个特定的文件,您可以通过发现以下第一个找到的信息,以相当大的信心对其进行分类。
\bye
,而且通常没有在LaTeX文件中定义。\begin
不太可能在'普通'TeX文件中定义(尽管\end
格式定义plain
)。这可能是你能做的最好的事情,虽然这对于你似乎正在进行的那种统计分析肯定是足够的。
没有什么可以阻止某人编写TeX文件,将\begin
定义为某种东西,也没有人写一个LaTeX文件来定义\bye
来表示某些东西。从您的角度来看,问题是没有任何 TeX构造在LaTeX文件中被禁止(反之亦然),即使像\halign
这样的东西也是如此在LaTeX中很少见。实际上,由于LaTeX只是一种TeX格式,因此两者之间根本没有基本差异。
只是为了推动后一点回家,有ConTeXt之类的东西,这是一种TeX格式,它不是plain
,但也不是LaTeX。但这很罕见。
答案 1 :(得分:-3)
是的,请将所有文件名添加到数组中,通过列出目录来执行此操作。
x = os.listdir("path")
这会将目录内容添加到变量x中。 然后循环它:
PureTex = []
for Char in x:
if Char.endswith('.tex'):
PureTex.append(Char)
else:
pass
现在PureTex数组将包含纯文件。