python 用循环创建多个文件

请教~我想用python创建多个.tex的文件并把他们转换成pdf最终再打包成.zip,但是文件名要用到循环次数i值来命名,比如说创建50个连续数字名的.tex的文件,第... 请教~
我想用python创建多个.tex的文件并把他们转换成pdf最终再打包成.zip,但是文件名要用到循环次数i值来命名,比如说创建50个连续数字名的.tex的文件,第一个叫1.tex,第二个叫2.tex以此类推。

然后还有个问题,有没有在python里运行.tex文件的命令啊,在ubuntu终端里将.tex文件转换成pfd文件只需要输入
latex 文件名.tex
就可以了,请教有什么方法可以在python里让他执行这句命令或者有其他的可以将tex文档转换为pdf文档的命令么么?

最后一个问题,如果说做出了50个.pdf的文件之后,怎么用python将他们打包成一个.zip的文件?

谢谢了
感谢1楼的回答,前面两个已经完成了,不过对文件进行压缩还是有点不行啊。
请教:
如何将当前目录下的指定的10个文件压缩到当前目录下?
例如:我有10个文件分别叫1.tex,2.tex以此类推,将这10个文件压缩为一个file.zip的文件,储存在当前目录下,谢谢了!
展开
 我来答
曹晓山11
推荐于2016-07-25 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52077
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

Python编程中用for()循环创建多个文件,代码如下:

#coding=utf-8
'''
Created on 2015-07-05
'''
import os
import time
def nsfile(s):
  '''The number of new expected documents'''
  #判断文件夹是否存在,如果不存在则创建
  b = os.path.exists("E:\\testFile\\")
  if b:
    print "File Exist!"
  else:
    os.mkdir("E:\\testFile\\")
  #生成文件
  for i in range(1,s+1):
    localTime = time.strftime("%Y%m%d%H%M%S",time.localtime())
    #print localtime
    filename = "E:\\testFile\\"+localTime+".txt"
    #a:以追加模式打开(必要时可以创建)append;b:表示二进制
    f = open(filename,'ab')
    testnote = '测试文件'
    f.write(testnote)
    f.close()
    #输出第几个文件和对应的文件名称
    print "file"+" "+str(i)+":"+str(localTime)+".txt"
    time.sleep(1)
  print "ALL Down"
  time.sleep(1)
 
if __name__ == '__main__':
  s = input("请输入需要生成的文件数:")
  nsfile(s)
Felixonmars
推荐于2018-02-27 · TA获得超过509个赞
知道小有建树答主
回答量:550
采纳率:0%
帮助的人:452万
展开全部
os.system命令可以调用外部命令
组合latex 和 zip的命令行版本工具 就可以实现你所需要的功能
用i来命名文件很简单
for i in range(1,51):
filename = "%d.tex" % (i)
这样filename变量里存储的就是 "1.tex" 这样的字符串了.

压缩文件的话
我只知道7zip是 7z a <压缩档名> <要压缩的文件名>
其中 要压缩的文件名 可以有多个

示例:
7z a file.zip 1.tex 2.tex 3.tex ... 10.tex
这样一个命令 就可以实现:)
至于7z.exe 可以到7-zip的官方网站上下载命令行版本的7z, 压缩包里会有个7za.exe,改名一下就好 :)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yujie_fudan
2010-07-29 · TA获得超过469个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:328万
展开全部
这些都可以通过调用系统命令来实现,用python可以方便的生成命令行。

import os
# 编译tex文件
for i in range(1, 51):
os.system('latex %d.tex'%i)

# 压缩成zip
pdfs = ' '.join(['%d.pdf'%i for i in range(1, 51)])
os.system('zip file.zip %s'%pdfs)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pythonercn
2010-07-29 · TA获得超过146个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:139万
展开全部
from zipfile import ZipFile

if __name__ == "__main__":
with ZipFile('file.zip', 'w') as myzip:
for i in range(1,11):
myzip.write('%d.tex' % i)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式