python 用循环创建多个文件

请教~
我想用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的文件,储存在当前目录下,谢谢了!

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)
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
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,改名一下就好 :)本回答被提问者和网友采纳
第2个回答  2010-07-29
这些都可以通过调用系统命令来实现,用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)
第3个回答  2010-07-29
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)
相似回答