URN Logo
UNIX Resources » Linux » China Linux Forum » Python 编 程 » 19 » [精华] A:一个Python小程序:目录比较程序
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
[精华] A:一个Python小程序:目录比较程序
 
Re: A:一个Python小程序:目录比较程序 - jfwan [2005-05-11 15:40 | 1,496 byte(s)]
 
 
 
 
 
Re: A:一个Python小程序:目录比较程序 - xyb [2004-04-19 18:03 | 674 byte(s)]
 
 
Re: A:一个Python小程序:目录比较程序 - xyb [2004-04-16 10:49 | 267 byte(s)]
 
 
Re: A:一个Python小程序:目录比较程序 - xyb [2004-04-16 11:12 | 153 byte(s)]
 
 
Subject: [精华] A:一个Python小程序:目录比较程序
Author: limodou    Posted: 2004-04-15 22:49    Length: 414 byte(s)
[Original] [Print] [Top]
全文两篇,见我的Blog吧。
http://limodou.donews.net/limodou/posts/12294.aspx一个Python小程序:目录比较程序(一)
http://limodou.donews.net/limodou/posts/12505.aspx一个Python小程序:目录比较程序(二)
----
我的Blog(http://limodou.donews.net/limodou)
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: xyb    Posted: 2004-04-16 10:49    Length: 267 byte(s)
[Original] [Print] [Top]
我也写过这么一个东西,但好久用不到,不知道被放到那里去了。
我那个比较是把不同的文件名分别放到左右两栏里,我感觉这样看起来更易读,对看结果的人来说更一目了然一些。建议你的程序能增加这么一个view模式。对了,就是象 vim diff 或者 webcvs 里的 diff 页面一样的 view。
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: limodou    Posted: 2004-04-16 11:09    Length: 114 byte(s)
[Original] [Print] [Top]
原来也想做成那样,不过对于两个目录都存在的文件,文件名肯定都有,放在一起感到反而不是太清晰,所以就做成这个样子了。
----
我的Blog(http://limodou.donews.net/limodou)
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: xyb    Posted: 2004-04-16 11:12    Length: 153 byte(s)
[Original] [Print] [Top]
> 不过对于两个目录都存在的文件,文件名肯定都有,放在一起感到反而不是太清晰

我也记不清了,好象我加了一个参数,隐去相同的文件名。
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: limodou    Posted: 2004-04-16 11:27    Length: 226 byte(s)
[Original] [Print] [Top]
我的主要目的就是想知道相同的文件,哪些一样,哪些不一样。
另外,这个程序基本上是自已用,因为有些条件,如过滤设置,是与我的要求一致的。如果有人想用的话可以自已改一下。当然如果有需求做成一个通用的,可以考虑改造一下。呵呵
----
我的Blog(http://limodou.donews.net/limodou)
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: xyb    Posted: 2004-04-19 18:03    Length: 674 byte(s)
[Original] [Print] [Top]
今天在网上搜索了一下,发现 python 自 2.1 以来就开始提供 difflib 了,呵呵

http://www.python.org/doc/current/lib/module-difflib.html

一个例子:
>>> diff = difflib.ndiff('one two three '.splitlines(1),
... 'ore tree emu '.splitlines(1))
>>> print ''.join(diff),
- one
? ^
+ ore
? ^
- two
- three
? -
+ tree
+ emu

挺好用的,大家以后应该用这个了。
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: limodou    Posted: 2004-04-19 19:32    Length: 72 byte(s)
[Original] [Print] [Top]
呵呵,我也是在作目录比较时发现的。看来Python中还有许多宝藏我没有挖掘的。
----
我的Blog(http://limodou.donews.net/limodou)
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: jfwan    Posted: 2005-05-11 15:40    Length: 1,496 byte(s)
[Original] [Print] [Top]
我也有一个这样的程序。

import sys, os

def get_intersection(arg1, arg2):
return set(arg1).intersection(arg2)

def cmp_file(file1, file2):
if open(file1, "r").read() != open(file2, "r").read():
cmd = "diff " + file1 + " " + file2 + " > " + file1 + ".dif"
os.system(cmd)

def cmp_dir(arg1, arg2):
files1 = os.listdir(arg1)
files2 = os.listdir(arg2)
files = get_intersection(files1, files2)
for file in files:
file1 = os.path.join(arg1, file)
file2 = os.path.join(arg2, file)
if os.path.isdir(file1) and os.path.isdir(file2):
cmp_dir(file1, file2)
else:
cmp_file(file1, file2)

def main():
argc = len(sys.argv)

if argc < 2:
sys.exit("Usage: cmpdir [srcdir] <destdir>")

if argc == 2:
srcdir = os.getcwd()
dstdir = sys.argv[1]
else:
srcdir = sys.argv[1]
dstdir = sys.argv[2]

cmp_dir(srcdir, dstdir)

if __name__ == "__main__":
main()
----
重在理解,轻在实现!
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: limodou    Posted: 2005-05-11 22:23    Length: 50 byte(s)
[Original] [Print] [Top]
不过你使用的是系统命令,而我使用的是python的模块。
----
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: jfwan    Posted: 2005-05-11 22:36    Length: 48 byte(s)
[Original] [Print] [Top]
谢谢你做的编辑,不知道贴代码的时候怎么保持缩进?
----
重在理解,轻在实现!
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: limodou    Posted: 2005-05-12 17:52    Length: 70 byte(s)
[Original] [Print] [Top]
前后加 [ code ] 和 [ /code ]
注意里面没有空格,一行不要太长。
----
[Original] [Print] [Top]
Subject: Re: A:一个Python小程序:目录比较程序
Author: jfwan    Posted: 2005-05-12 18:00    Length: 6 byte(s)
[Original] [Print] [Top]
谢谢!
----
重在理解,轻在实现!
[Original] [Print] [Top]
« Previous thread
如何强制退出程序,比如exit
Python 编 程
19
Next thread »
作GUI是用Tkinter好还是wxPython啊
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 04:11:41, cost 0.05802583694458 ms.