arcgis批量处理nc文件_文件批量处理
程序员文章站
2022-04-17 16:02:24
...
- 批量重命名文件
在这里最核心的就是os.listdir(),这个函数可以返回文件夹里所有文件的文件名. 有了这个我们才能进行其他操作,包括遍历。
import sys
import os #OS库是文件处理中经常用到的库
import comtypes.client
#单个word转PDF
wdFormatPDF = 17
addr = 'C:UserswangDesktopG13-a' #文件夹的绝对路径
names = os.listdir(addr) # 读取文件夹下的所有文件名
#进行遍历
for name in names:
old_name = addr + name #注意rename函数里要放完整的路径,不能只放新旧名字
new_name = addr + name[:13] #这是当时甲方要求去除后缀,故只取旧题目的前13位
os.rename (old_name, new_name)
2. 文件分类
在tender的最后提交时,甲方要求按工作编号进行提交,这里需要按照register里的编号进行分类。
首先读取文档,观察数据形式
import pandas as pd
df = pd.read_excel('C:UserswangDesktopDCC_file.xlsx')
接下来,需要完成的就是:(1) 获取每一类DCC编码下的文件名;(2)复制对应文件名至相应文件夹。
其中文档的复制移动主要依靠shutil模块.
import os
import shutil
file_dir = r'C:UserswangDesktopAll file' #这里是存放所有文件的位置,它们需要进行分类
os.chdir(file_dir)
numb = '10-01902-0002-050' #这是其中一个DCC 编码
os.mkdir(numb) #在当前路径下创建对应的文件夹
filenames = df.loc[(df['DCC']== numb)]['NATIVE'] #利用loc函数筛选出 '10-01902-0002-050' 对应的所有文件名
# 这里操作是因为DC部门在命名文件时,Pdf, Word 和drawing的文件名后三位分别是“P00”,“W00”和“V00”,
# 所以通过这个,为对应的文件名加上对应的后缀,来构成完整的文件名
for name in filenames:
if name[-3] == 'X':
fname = name + '.xls'
if name[-3] == 'V':
fname = name + '.dgn'
if name[-3] == 'W':
fname = name + '.doc'
if os.path.exists(fname) ==1: #判断文件是否存在
shutil.copy(fname,numb) #复制文件至文件夹
else:
print(fname) #输出不存在的文件名,用来检查
3. 批量Word转PDF
这个很常见的需求,需要将word转为PDF,但传统的Adobe转PDF需要一个一个点,比较慢,而网上大部分批量转PDF的软件基本收费,所以也是临时想起用python写个小程序。
这里呢,如前面提到的DC要求,转换得到的PDF,名字后三位需要时“P00", 例如C860040001W00.doc 转换后的PDF应该是 C860040001W00.pdf.
所以这里目标有两个:
(1) 遍历,也就是达到批量处理的目的
(2) 重命名后三位为”P00"
这里用到的库是 comtypes.client,用它访问COM组件达到转PDF的目的。
import sys
import os
import comtypes.client
wdFormatPDF = 17
addr = 'C:UserswangDesktopdoc10-01902-0002-711' # 目标路径,存放word的位置
doc_names = os.listdir(addr) #读取文件夹里所有文件的名字
pdf_names = [] #将用来存放转换后PDF的名字
#开始遍历
for name in doc_names:
pdf_name = name[:10] +'P00.pdf' #实现文件名转换:C860040001W00.doc 到 C860040001W00.pdf.
pdf_names.append(pdf_name) #存放新的PDF文档文件名
in_file = os.path.abspath(addr + name) #构造完整路径的文件名
out_file = os.path.abspath(addr + pdf_name)
word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF) #转换为PDF
doc.Close()
word.Quit()
有了这些小程序,基本可以处理工作中的文档操作了!感谢Python让我现在有时间喝咖啡写文章,而不用继续click,click,click.
上一篇: 线程死锁产生的原因及解决
下一篇: PHP取整数函数常用的四种方法