python 用循环创建多个文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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) 参考技术A 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,改名一下就好 :)本回答被提问者和网友采纳 参考技术B 这些都可以通过调用系统命令来实现,用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) 参考技术C 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)
以上是关于python 用循环创建多个文件的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法用 char 变量创建一个 for 循环来创建多个绘图?