可能重复:
如何比较两个word文档?
如何以编程方式获得两个单词.doc文档的差异?然后,您可以在其中获取结果输出并生成结果的html文件.(正如您期望在普通的gui diff工具中看到的那样)
我想如果你通过COM抓取文档并将输出转换为文本,你可以提供一些差异功能.思考?
没有Windows和COM,有没有办法做到这一点?
(最好是在python中,但我对其他解决方案持开放态度)
UPDATE
询问msword diff工具的原始问题是:(感谢Nathan)
我总是对许可证感到困惑,我正在再次阅读,但我确信有人已经理解了这一点,并且可以更清楚地解释它.
我试图让我的公司使用geodjango,并且作为一个典型的大型企业公司,他们不想开源所得到的项目.因此反对触及任何标有"GPL"的东西.
使用推荐的postgresql查看geodjango堆栈,许可证是:
Django - BSD许可证
Postgresql - BSD许可证
PostGIS - GPL
GEOS - LGPL
PROJ.4 - 麻省理工学院执照
GDAL - MIT/X许可证
psycopg2 - GPL
gpl上的维基百科条目说明如下:
许多最常见的免费软件许可证,例如最初的MIT/X许可证,BSD许可证(目前的3条款形式)和LGPL,都是"GPL兼容的".也就是说,他们的代码可以与GPL下的程序组合而不会发生冲突(新组合将GPL应用于整体).
来自维基百科的GPL条目,"兼容性和多许可":http://en.wikipedia.org/wiki/Gpl
使用带有geodjango的psycopg2/PostGIS组件,是否可以生成项目的GPL许可证?如果是这样,有哪些替代方案?
UPDATE
psycopg2有一个专门解决GPL应用方式的条款,感谢piquadrat.
我是Python的新手,但我选择了一个实际上与工作有关的问题,我想当我弄清楚如何做到这一点我会一路上学习.
我有一个充满JSON格式文件的目录.我已经将目录中的所有内容导入到列表中,并在列表中进行迭代以执行简单的打印,以验证我获取了数据.
我正在试图弄清楚如何在Python中实际使用给定的JSON对象.在javascript中,它就像
var x = {'asd':'bob'}
alert( x.asd ) //alerts 'bob'
Run Code Online (Sandbox Code Playgroud)
访问对象上的各种属性是简单的点符号.什么是Python的等价物?
所以这是我正在进行导入的代码.我想知道如何使用列表中存储的各个对象.
#! /usr/local/bin/python2.6
import os, json
#define path to reports
reportspath = "reports/"
# Gets all json files and imports them
dir = os.listdir(reportspath)
jsonfiles = []
for fname in dir:
with open(reportspath + fname,'r') as f:
jsonfiles.append( json.load(f) )
for i in jsonfiles:
print i #prints the contents of each file stored in jsonfiles
Run Code Online (Sandbox Code Playgroud) 我想知道当用户模型扩展/子类和这个结果用户模型在多个应用程序之间共享和使用时,常见的项目/应用程序结构是什么.
我想在多个应用中引用相同的用户模型.我还没有建立登录界面,所以我不确定它应该如何组合在一起.
以下是我的想法:
project.loginapp.app1
project.loginapp.app2
Run Code Online (Sandbox Code Playgroud)
这种情况有共同的模式吗?登录最好是由"登录应用程序"处理?
与此问题类似,但更具体. django应用程序配置
UPDATE
澄清了上面的用例.我想将字段(扩展或子类?)添加到现有的auth用户模型中.然后在多个应用程序中引用该模型.
在innosetup脚本的卸载部分,我想添加一个检查,以查看特定文件的最后更新日期时间是否在最近10分钟内发生.
有谁知道这个innosetup compatable pascal代码?
我正在研究使用UTM坐标系统和geodjango.我无法弄清楚如何正确获取数据.
我一直在浏览文档,似乎" GEOSGeometry(geo_input,srid = None) "或" OGRGeometry "可以与EWKT一起使用,但我无法弄清楚如何格式化数据.
看起来UTM SRID是:2029
从维基百科文章中,格式如下:
[ UTMZone ] [ N或S ] [ 东向 ] [ 北向 ]
17N 630084 4833438
所以我试了以下没有运气:
>>> from django.contrib.gis.geos import *
>>> pnt = GEOSGeometry('SRID=2029;POINT(17N 630084 4833438)')
GEOS_ERROR: ParseException: Expected number but encountered word: '17N'
>>>
>>> from django.contrib.gis.gdal import OGRGeometry
>>> pnt = OGRGeometry('SRID=2029;POINT(17N 630084 4833438)')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\lib\site-packages\django\contrib\gis\gdal\geometries.py", line 106, in __init__ …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个好的python库来操作subversion存储库.我正在尝试PySvn,但发现它无法处理类似的东西
pysvn.Client().info("/path/to/svn/repo")
Run Code Online (Sandbox Code Playgroud)
因为它不是工作副本.有谁知道任何可以处理这种事情的好库?
更新 - 我会尝试简化它 - 我想获得有关存储库的信息.我跑的时候得到的信息也一样svn info file:///path/to/svn/repo
我有一个Perl脚本通过DBI模块与现有数据库(数据库类型未知)连接,我想在WinXP上的python 2.6中访问它.
Perl代码是:
use DBI;
my $DSN = "DBI:Proxy:hostname=some.dot.com;port=12345;dsn=DBI:XXXX:ZZZZZ";
my $dbh = DBI->connect($DSN);
Run Code Online (Sandbox Code Playgroud)
这可以转换为python等价物吗?
下面是一个例子(是否有可用的pywin32 odbc连接器文档?),我将以下内容放在一起:
import odbc
DSN = "DBI:Proxy:hostname=some.dot.com;port=12345;dsn=DBI:XXXX:ZZZZZ"
db = odbc.odbc(DSN)
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
dbi.operation-error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified in LOGIN
Run Code Online (Sandbox Code Playgroud)
UPDATE
看来另一个Perl模块DBD :: Proxy正在为处理实际查询的Perl DBI :: ProxyServer(服务器端)实现提供实际接口.
python可以用于与基于Perl的DBI :: ProxyServer接口吗?
它似乎应该可用,但我似乎无法找到它.
就像是:
pkg = rpm.Package(name="some package")
dependencies = pkg.dependencies()
Run Code Online (Sandbox Code Playgroud)
有没有这样的东西,比我现在做的更干净?
目前,我正在使用子进程包装rpm命令并手动解析输出:
cmd = "rpm -qRp {file} | sort | uniq".format(file=filename)
cmd_output = subprocess.check_output(cmd, shell=True)
# ... long parse of cmd_output
Run Code Online (Sandbox Code Playgroud) 我想要的是:我希望列表q只出现三次.出现时,系统会提示您选择其中一个列表项.每次选择一个示例时,我希望它消失并且无法再次选择 - 我甚至不想选择它来显示.因此,当选择示例1时,它会显示列表,其中包含示例2和3.然后,接下来选择示例3 - 列表应该显示,之后仅示例2可用.相反,它显示1和2都可用,即使先前已删除1.
所以问题是该项目在删除时不会从列表中永久删除,而是在下一次打印时返回,这是我不想要的.
for x in range(0,3):
q = ['example 1', 'example 2', 'example 3']
select = raw_input("> ")
if select == "1":
del q[0]
print q
if select == "2":
del q[1]
print q
if select == "3":
del q[2]
print q
Run Code Online (Sandbox Code Playgroud)
似乎有很多关于在Python中从列表中删除内容的问题,但我一直在寻找答案,但是我还没有找到适合我特定情况的任何工作.提前抱歉任何愚蠢,我一直在学习编程只有一个月了.
我在postgres数据库中有一个ip字段,定义为inet字段.
目前,为了确定ipv4 vs ipv6,看起来我可以使用冒号和/或'.' 在某种程度上,但必须有一个更好的方法,对吗?
COLON_COUNT = (length(ip::text) - length(replace(ip::text, ':', '')));
DOT_COUNT = (length(ip::text) - length(replace(ip::text, '.', '')));
Run Code Online (Sandbox Code Playgroud)
什么是确定地址是ipv4还是ipv6的干净/好方法?