求助:如何用python脚本删除文本中的重复行(相同记录只保留一个)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助:如何用python脚本删除文本中的重复行(相同记录只保留一个)相关的知识,希望对你有一定的参考价值。
参考技术A :em06:楼上的代码看不懂,能不能解释一下?
我的方案要短也可以,看下面:h,r,w
=,
file('data'),
file('newdata','w')w.write(reduce(lambda
x,y:x+y,
[i
for
i
in
r
if
h.get(i)==None
and
h.setdefault(i,
True)]))复制代码[
本帖最后由
retuor
于
2008-8-23
00:35
编辑
]
求助,怎么运用Python脚本批量替换mxd文件中的文本?
如题,求助,怎么运用Python脚本批量替换mxd文件中的文本?
好比多个mxd文件中都有个文本“2013年9月10日”,现在要改成“2012年12月10日”
#Read input parameters from script tool
Path = arcpy.GetParameterAsText(0)
oldText = arcpy.GetParameterAsText(1)
newText = arcpy.GetParameterAsText(2)
case = arcpy.GetParameter(3)
exact = arcpy.GetParameter(4)
outputMXD = arcpy.GetParameterAsText(5)
try:
#Referent the map document
mxd = arcpy.mapping.MapDocument(mxdPath)
#Find all page layout text elements
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if exact:
if case:
if oldText == elm.text:
elmText = elm.text.replace(oldText, newText)
elm.text = elmText
else:
if oldText.upper() == elm.text.upper():
elmText = elm.text.upper().replace(oldText, newText)
elm.text = elmText
else:
if case:
if oldText in elm.text:
elmText = elm.text.replace(oldText, newText)
elm.text = elmText
else:
if oldText.upper() in elm.text.upper():
elmText = elm.text.upper().replace(oldText, newText)
elm.text = elmText
mxd.saveACopy(outputMXD)
del mxd
except Exception, e:
import traceback
map(arcpy.AddError, traceback.format_exc().split("\\n"))
arcpy.AddError(str(e))追问
你好,这段代码怎么运行呢,我还是个新手,能讲一下具体怎么使用吗?
参考技术A 这个,是在文件系统中寻找mxd文件。类似walk的函数第二个,是针对每个文件,用正则表达式匹配。不过可能字符串编码也要注意。具体的你要调试了 参考技术B files = ['a.mxd', 'b.mxd']
def readit(fn):
with open(fn) as f:
return f.read()
def writeto(fn, s):
with open(fn, 'w') as f:
f.write(s)
for fn in files:
writeto(fn, readit(fn).replace(“2013年9月10日”, “2012年12月10日”))
以上是关于求助:如何用python脚本删除文本中的重复行(相同记录只保留一个)的主要内容,如果未能解决你的问题,请参考以下文章
如何用C语言监视一文件,(可以隔一定时间检测该文件),当文件相比较上一时间有改动时,读出改动处