小编Mik*_*ike的帖子

如何检测Python中的日期是否连续?

我有一个带有"日期"字段的访问表.它有每个记录的随机日期.我已经构建了一个脚本来将所有记录附加到列表中,然后设置列表以仅过滤掉唯一值:

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"字段的唯一值,我想检测是否:

  • 日期是单一的(即只返回一个唯一的日期,因为这是每条记录中的日期)
  • 如果日期是一系列日期(即所有日期都属于连续范围)
  • 如果日期是多个日期,但不在连续日期的范围内

我们欢迎所有的建议!麦克风

python date date-range

6
推荐指数
1
解决办法
5636
查看次数

"NoneType"类型的参数不可迭代

我试图在一个特定目录中打开一个包含一系列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)

python xml loops elementtree

5
推荐指数
1
解决办法
2万
查看次数

Python 2.6 xml.dom.ext对象丢失了吗?

我使用的是我在网上找到的脚本,可以通过解析一些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)

python xml pretty-print python-2.6 xml-parsing

5
推荐指数
1
解决办法
5278
查看次数

如何测试文件是否包含完整路径或仅文件名,Python?

我有一个从 GUI 运行的脚本。GUI 在 ArcGIS 中运行,基本上,第一个参数可以接受已嵌入 ArcMap 中的文件,或者我可以使用资源管理器对话框导航到文件位置。

如果我使用该选项来选择嵌入文件,那么它只返回文件名:

即“SOIL_LINES”

如果我使用导航选项,它将返回文件名及其填充路径:

C:\SOIL\SOIL_LINES.shp

我想测试输入参数以查看该文件是否只是文件名或者是否还包含完整路径。我最终需要解析选项 2 中的路径来隔离文件名本身。这部分我已经弄清楚了。

我已经使用过os.path.isfile,但这会在两种情况下返回文件,因为它们都被视为文件。

谢谢,迈克

python

5
推荐指数
1
解决办法
3753
查看次数

在Python中拆分分号分隔的字符串

我想分割一个以分号分隔的字符串,以便我可以使用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 string split

4
推荐指数
1
解决办法
2万
查看次数

列出用户定义的变量python

我试图迭代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)

它列出了存储在内存中的所有变量.我想隔离我在脚本中创建的变量,而不是列出默认创建的系统变量.有没有办法做到这一点?

python variables

4
推荐指数
2
解决办法
7994
查看次数

强制另存为,MS Excel VBA

我在MS Office产品中对VBA有点新意.我一直在搜索一些代码,这些代码会强制用户"另存为"我用作模板的.xls文件(但它不是实际的模板文件类型)

基本上,我有这个:

  1. 用户打开.xls,将某些数据输入某个字段,然后将文件 - >另存为自己的位置
  2. 有时用户点击保存,因此覆盖我不想发生的.xls.

我一直在研究一些想法,但我不确定如何最好地实现它.我认为用户首次打开.xls以保存到新位置时的提示是最好的方法,但是如果他们已经将文件保存到新位置并决定编辑新位置,我想要他们能够在那时'保存',因为现在它是他们自己的文件,而不是原始文件.

如果有人可以指出我正确的方向或在我的逻辑中发现缺陷,我很乐意听到它.

谢谢,迈克

excel vba

4
推荐指数
1
解决办法
2万
查看次数

替换列表中的项目,python

我有一个像这样的字符串列表:

Item_has_was_updated_May_2010
Item_updated_Apr_2011
Item_got_updated_Sept_2011
Run Code Online (Sandbox Code Playgroud)

我想迭代字符串列表并更新字符串的最后两部分.一个月和一年.字符串的其余部分我想保持不变.月份和年份将取自我之前在脚本中设置的变量,因此我们称之为月份x和年份y.

我的方法是:

  1. 遍历字符串列表
  2. 用"_"分割每个字符串
  3. 替换最后2项
  4. 将物品与更换的物品一起加入

月份和年份将取自我之前在脚本中设置的变量,因此我们称之为月份x和年份y.

如果有人可以建议一种方法,我们将不胜感激.

python replace

4
推荐指数
1
解决办法
1834
查看次数

安装Python模块

我总是教自己如何编写程序,很少接受正规教育,所以我总觉得我错过了一些正规教育可能提供的东西.在这种情况下,我想为Python安装一个新模块.这是pyhk热键模块.我正在用热键帮助同事工作.我对模块的问题是,他们完全不知道如何在我的计算机上安装使用.

我很少得到一个可执行文件,这很容易,但有时我认为你必须复制并粘贴.dll或运行命令提示符并导入.dll's但我真的不知道如何做到这一点我只是觉得很奇怪有很多那里有很少的文档来帮助解决这个问题....因此我相信我可能会遗漏一些东西.任何人都可以帮我解释如何安装python模块?

谢谢,迈克

python installation module

4
推荐指数
1
解决办法
1万
查看次数

在 Python 中使用“替换”函数

我有一个访问表,它有一组以度分秒为单位的坐标值,它们的格式如下:

90-12-28.15

我想像这样重新格式化它:

90° 12' 28.15"

基本上用度数和秒字符替换破折号,在度数和分钟之间有一个空格,在分钟和秒之间有一个空格。

我正在考虑使用“替换”功能,但我不确定如何用度数字符 (°) 和空格替换破折号的第一个实例,然后检测破折号的第二个实例并放置分钟字符和一个空格,然后最后在最后添加秒字符。

任何帮助表示赞赏。

麦克风

python

2
推荐指数
1
解决办法
825
查看次数