我有一个带有"日期"字段的访问表.它有每个记录的随机日期.我已经构建了一个脚本来将所有记录附加到列表中,然后设置列表以仅过滤掉唯一值:
dateList = []
# cursor search through each record and append all records in the date
# field to a python list
for row in rows:
dateList.append(row.getValue("DATE_OBSERVATION").strftime('%m-%d-%Y'))
# Filter unique values to a set
newList = list(set(dateList))
Run Code Online (Sandbox Code Playgroud)
这将返回(在我的测试表上):
['07 -06-2010','06 -24-2010','07 -05-2010','06 -25-2010']
既然我有"DATE_OBSERVATION"字段的唯一值,我想检测是否:
我们欢迎所有的建议!麦克风
我试图在一个特定目录中打开一个包含一系列XML的目录.
在下面的代码中,我正在遍历每个XML文档,我正在设置一些"if语句"来读取XML中的文本,查找关键字并替换它们,然后将新文件写入新位置.
运行脚本时出现以下错误:
Traceback info:
File "Z:\ESRI\Python\Test Scripts\ElementTree6.py", line 62, in <module>
if "%begdate%" in element.text:
...
Run Code Online (Sandbox Code Playgroud)
错误信息:
argument of type 'NoneType' is not iterable
Run Code Online (Sandbox Code Playgroud)
我已经将目录硬编码为一个特定的XML,当我运行if语句时,它们工作正常.
当我尝试设置迭代一系列我遇到错误的XML时.
我搜索了这个网站,看看我是否可以找到一个解决方案,但所有问题要么与我的不同,要么我不太了解解决方法.
我使用了许多打印行来测试输出.
一切正常,直到我到达if语句,然后出现错误.
# Location of XML's
folderPath = r"Z:\data"
# set variable to store files with extension ".xml"
for filename in glob.glob(os.path.join(folderPath, "*.xml")):
fullpath = os.path.join(folderPath, filename)
# find files and split the filename from the directory path
if os.path.isfile(fullpath):
basename, filename2 = os.path.split(fullpath)
#print "Basename = " + basename
#print "Filename …Run Code Online (Sandbox Code Playgroud) 我使用的是我在网上找到的脚本,可以通过解析一些XML来转换一些文件。该脚本是在python 2.6中构建的,并且使用的是我在网上阅读过的模块,但我相信2.6不会包含该模块。我想知道是否有解决方法。我得到的错误是:
没有模块名称EXT
在下面的脚本中,我认为它正挂在导入上xml.dom.ext,并且似乎只在PrettyPrint的最后使用了该对象(请参阅最后的Try语句),我想知道2.6中是否有解决方法?我似乎找不到包含可以导入的EXT对象的模块。
脚本是:
from xml.dom.minidom import Document
import xml.dom.ext
import string
import os
import arcpy
#Read input parameters from GP dialog
output = arcpy.GetParameterAsText(0)
#Create an output qgs file
f = open(output, "w")
# Create the minidom
doc = Document()
# Create the <qgis> base element
qgis = doc.createElement("qgis")
qgis.setAttribute("projectname", " ")
qgis.setAttribute("version", "1.6.0-Capiapo")
doc.appendChild(qgis)
# Create the <title> element
title = doc.createElement("title")
qgis.appendChild(title)
# Assign current document
mxd = arcpy.mapping.MapDocument("CURRENT")
print 'Converting mxd........'
# Dataframe …Run Code Online (Sandbox Code Playgroud) 我有一个从 GUI 运行的脚本。GUI 在 ArcGIS 中运行,基本上,第一个参数可以接受已嵌入 ArcMap 中的文件,或者我可以使用资源管理器对话框导航到文件位置。
如果我使用该选项来选择嵌入文件,那么它只返回文件名:
即“SOIL_LINES”
如果我使用导航选项,它将返回文件名及其填充路径:
C:\SOIL\SOIL_LINES.shp
我想测试输入参数以查看该文件是否只是文件名或者是否还包含完整路径。我最终需要解析选项 2 中的路径来隔离文件名本身。这部分我已经弄清楚了。
我已经使用过os.path.isfile,但这会在两种情况下返回文件,因为它们都被视为文件。
谢谢,迈克
我想分割一个以分号分隔的字符串,以便我可以使用Python存储每个单独的字符串,以用作XML标记之间的文本.字符串值如下所示:
08-26-2009;08-27-2009;08-29-2009
Run Code Online (Sandbox Code Playgroud)
它们只是存储为字符串值的日期
我想迭代遍历每个值,存储到变量并在最后将变量调用到以下代码中:
for element in iter:
# Look for a tag called "Timeinfo"
if element.tag == "timeinfo":
tree = root.find(".//timeinfo")
# Clear all tags below "timeinfo"
tree.clear()
element.append(ET.Element("mdattim"))
child1 = ET.SubElement(tree, "sngdate")
child2 = ET.SubElement(child1, "caldate1")
child3 = ET.SubElement(child1, "caldate2")
child4 = ET.SubElement(child1, "caldate3")
child2.text = FIRST DATE VARIABLE GOES HERE
child2.text = SECOND DATE VARIABLE GOES HERE
child2.text = THIRD DATE VARIABLE GOES HERE
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
我试图迭代python脚本中设置的变量.我遇到了以下情况:
在第一个例子中:
#!/us/bin/python
foo1 = "Hello world"
foo2 = "bar"
foo3 = {"1":"a", "2":"b"}
foo4 = "1+1"
for name in dir():
myvalue = eval(name)
print name, "is", type(name), "and is equal to ", myvalue
Run Code Online (Sandbox Code Playgroud)
它列出了存储在内存中的所有变量.我想隔离我在脚本中创建的变量,而不是列出默认创建的系统变量.有没有办法做到这一点?
我在MS Office产品中对VBA有点新意.我一直在搜索一些代码,这些代码会强制用户"另存为"我用作模板的.xls文件(但它不是实际的模板文件类型)
基本上,我有这个:
我一直在研究一些想法,但我不确定如何最好地实现它.我认为用户首次打开.xls以保存到新位置时的提示是最好的方法,但是如果他们已经将文件保存到新位置并决定编辑新位置,我想要他们能够在那时'保存',因为现在它是他们自己的文件,而不是原始文件.
如果有人可以指出我正确的方向或在我的逻辑中发现缺陷,我很乐意听到它.
谢谢,迈克
我有一个像这样的字符串列表:
Item_has_was_updated_May_2010
Item_updated_Apr_2011
Item_got_updated_Sept_2011
Run Code Online (Sandbox Code Playgroud)
我想迭代字符串列表并更新字符串的最后两部分.一个月和一年.字符串的其余部分我想保持不变.月份和年份将取自我之前在脚本中设置的变量,因此我们称之为月份x和年份y.
我的方法是:
月份和年份将取自我之前在脚本中设置的变量,因此我们称之为月份x和年份y.
如果有人可以建议一种方法,我们将不胜感激.
我总是教自己如何编写程序,很少接受正规教育,所以我总觉得我错过了一些正规教育可能提供的东西.在这种情况下,我想为Python安装一个新模块.这是pyhk热键模块.我正在用热键帮助同事工作.我对模块的问题是,他们完全不知道如何在我的计算机上安装使用.
我很少得到一个可执行文件,这很容易,但有时我认为你必须复制并粘贴.dll或运行命令提示符并导入.dll's但我真的不知道如何做到这一点我只是觉得很奇怪有很多那里有很少的文档来帮助解决这个问题....因此我相信我可能会遗漏一些东西.任何人都可以帮我解释如何安装python模块?
谢谢,迈克
我有一个访问表,它有一组以度分秒为单位的坐标值,它们的格式如下:
90-12-28.15
我想像这样重新格式化它:
90° 12' 28.15"
基本上用度数和秒字符替换破折号,在度数和分钟之间有一个空格,在分钟和秒之间有一个空格。
我正在考虑使用“替换”功能,但我不确定如何用度数字符 (°) 和空格替换破折号的第一个实例,然后检测破折号的第二个实例并放置分钟字符和一个空格,然后最后在最后添加秒字符。
任何帮助表示赞赏。
麦克风
python ×9
xml ×2
date ×1
date-range ×1
elementtree ×1
excel ×1
installation ×1
loops ×1
module ×1
pretty-print ×1
python-2.6 ×1
replace ×1
split ×1
string ×1
variables ×1
vba ×1
xml-parsing ×1