首页 > 编程语言 >一个简单的python脚本,把latex项目的调用资源放在同一级,以便arxiv

一个简单的python脚本,把latex项目的调用资源放在同一级,以便arxiv

时间:2024-06-21 14:55:56浏览次数:13  
标签:latex img idx encoding python arxiv tex path line

据说上传arxiv时所有资源需要在同一目录,也就是不能有文件夹(只是据说,有人说有文件夹也行,我没试过),所以写了一个简单的小脚本把latex项目的资源(主要是图片)放在和.tex一个路径下:

import os
import shutil

tex_file='main.tex'
img_folder='imgs'
encoding_type='utf-8'

with open(tex_file,'r',encoding=encoding_type) as f:
    lines=f.readlines()
with open('after'+tex_file,'w',encoding=encoding_type) as f:
    for line in lines:
        if img_folder in line:
            start_idx=line.find(img_folder)
            end_idx=len(line)
            for i in range(start_idx,len(line)):
                if line[i]=='}':
                    end_idx=i
                    break
            img_path=line[start_idx:end_idx]
            '''print(img_path)
            assert 0>1'''
            shutil.copy(img_path,img_path.replace('/','-'))
            new_line=line[0:start_idx]+img_path.replace('/','-')+line[end_idx:]
            f.write(new_line)
        else:
            f.write(line)

标签:latex,img,idx,encoding,python,arxiv,tex,path,line
From: https://www.cnblogs.com/jiading/p/18260500

相关文章

  • Python梯度提升决策树的方法示例
    梯度提升决策树(GradientBoostingDecisionTree,简称GBDT)是一种基于集成学习的算法,它通过构建多个决策树模型,并将它们组合在一起来实现更好的预测性能。GBDT的核心思想是在每轮迭代中,根据当前模型的残差(真实值与预测值之差)来训练一个新的决策树,然后将这个新树添加到模型中,以不断减......
  • 用Nuitka打包 Python,效果竟如此惊人!
    目录为什么选择Nuitka?Nuitka的工作原理Nuitka的工作流程大致如下:安装Nuitka实战案例示例代码打包程序运行可执行文件进阶技巧优化选项多文件项目打包第三方库使用Python开发一个程序后,将Python脚本打包成独立可执行文件是一项常见需求。Nuitka是一个Python......
  • 用Python执行JavaScript代码,这些方法你不可不知!
    目录1、PyExecJS:轻量级桥梁......
  • Python优雅遍历字典删除元素的方法
    在Python中,直接遍历字典并在遍历过程中删除元素可能会导致运行时错误,因为字典在迭代时并不支持修改其大小。但是,我们可以通过一些方法间接地达到这个目的。1.方法一:字典推导式创建新字典(推荐)常见的方法是创建一个新的字典,其中不包含我们想要删除的元素。这可以通过字典推导式(dic......
  • 基于Python爬虫的城市天气数据可视化分析
    基于Python爬虫的城市天气数据可视化分析一、项目简介二、项目背景三、Python语言简介四、网络爬虫简介五、数据可视化简介六、天气数据爬取与存储6.1获取目标网页6.2发送请求6.3提取数据6.4保存数据七、天气数据可视化7.1天气现象轮播图7.2历......
  • 【python】 多线程
    什么是多线程?在操作系统上,所有的应用程序都是通过进程来运行的。当一个应用程序启动时,操作系统会为该应用程序创建一个或多个进程,并为这些进程分配必要的资源,如内存空间、文件句柄等,以协助应用程序的运行。在进程内部,可以同时存在多个线程。这些线程共享同一进程的地址空间和其......
  • 计算机毕业设计项目推荐,33709基于协同过滤的旅游推荐系统的设计与实现(开题答辩+程序定
    摘 要本论文主要论述了如何使用python语言、Django框架开发一个旅游推荐系统,本系统将严格按照软件开发流程,进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述该系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析......
  • python 中的 __getitem__方法
    python中的__getitem__方法,常见的两种写法形式一:__getitem__(self,index)一般用来迭代序列(常见序列如:列表、元组、字符串),或者求序列中索引为index处的值。形式二:__getitem__(self,key)一般用来迭代映射(常见映射如:字典),或者求映射中的键为key的值。一、该方法返回与指......
  • Python 学习 第三册 第13章 动态规划
    ----用教授的方式学习目录13.1 又见斐波那契数列13.2 动态规划与 0/1 背包问题13.3 动态规划与分治算法13.1 又见斐波那契数列一个很直观的斐波那契数列的递归实现:deffib(n):    """假设n是非负整数返回第n个斐波那契数"""    ifn==0o......
  • Python 学习 第四册 第8章 结构化的文本文件
    ----用教授的方式学习。目录8.1结构化的文本文件8.1.1CSV8.1.2 XML8.1.3 JSON8.1.4 YAML8.1结构化的文本文件结构化的文本有很多格式,区别它们的方法如下所示。• 分隔符,比如 tab('\t')、逗号(',')或者竖线('|')。逗号分隔值(CSV)就是这样的例子。• '<' 和 '>' ......