- 浏览: 397738 次
- 性别:
- 来自: 武汉
最新评论
-
lulu15634219680:
Eclipse设置行宽Maximum line width -
gakes:
有没有正确的啊
Android手机号码判断正则表达式 -
GhostFromheaven:
mooshadow 写道你好,首先感谢你的程序。我最近也碰到了 ...
java合并两个XML文件 -
mooshadow:
你好,首先感谢你的程序。我最近也碰到了这个问题,用了你的程序之 ...
java合并两个XML文件 -
sunnyting:
蛮靠谱!解决问题哈!
Android控制屏幕方向的改变
文章列表
很多应用多需要处理文件,而处理文件有一个固定的模式:打开文件,读入一些数据,处理这些数据,打印到屏幕上或写入另一个文件。
那么,如果我们想修改之后立即写回文件,该怎么做呢?用什么模式打开?又怎么读写?
我个人尝试了很多中方法,不是无法实现,就是操作非常麻烦。最终放弃。
幸运的是,Python内置模块fileinput就可以轻松完成。代码如下:
import fileinput
for line in fileinput.input(r"D:\1.txt", inplace=1):
print line.replace('d', 'b'),
足 ...
前面的话
Python内置的base64模块,在这里http://docs.python.org/library/base64.html?highlight=base64#base64,包括b64encode,b64decode,urlsafe_b64decode等,可以满足包括URL在内的文本编码需要。但是在用base64.encode编码二进制文件的时候,发现编码不完整,只有部分文件被编码了,base64.decode解码出来文件错误。可能是base64模块用来出来文本的?仔细分析发现,是忘记用二进制模式打开文件了。但是,自己实现base64模块基本功能也不是什么难事,不是要重复发明轮子, ...
Python有一个binhex模块,在http://docs.python.org/library/binhex.html,用来Encode and decode binhex4 files。我没搞懂binhex4格式,搜索了很久,找到一个讲的相对比较好的http://www.5dmail.net/html/2006-3-2/200632222823.htm。
控制欲强的人,对未知或不可控充满恐惧。自己写个二进制与十六进制文件转换也许有点“重复发明轮子”的嫌疑,但是实现起来并没有想象的那么复杂,同时增加可控可用度,还有些意想不到的收获。
·filehelper
在《python
方法1:比较type
第一种方法,就是判断对象的type是否为file,但该方法对于从file继承而来的子类不适用:
[python] view plaincopy
#-*- encoding=utf-8 -*-
import operator
#按字典值排序(默认为升序)
x = {1:2, 3:4, 4:3, 2:1, 0:0}
sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1))
print sorted_x
#[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]
#如果要降序排序,可以指定reverse=True
sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1), r ...
如果你真的想使用其他编程语言中类似的“单例模式”,你需要看:
http://ghostfromheaven.iteye.com/blog/1562618
但是,我要问的是,Python真的需要单例模式吗?我指像其他编程语言中的单例模式。
答案是:不需要!
因为,Python有模块(module),最pythonic的单例典范。
模块在在一个应用程序中只有一份,它本身就是单例的,将你所需要的属性和方法,直接暴露在模块中变成模块的全局变量和方法即可!
http://stackoverflow.com/a/31887/1447185
#-*- encoding=utf-8 -*-
print '----------------------方法1--------------------------'
#方法1,实现__new__方法
#并在将一个类的实例绑定到类变量_instance上,
#如果cls._instance为None说明该类还没有实例化过,实例化该类,并返回
#如果cls._instance不为None,直接返回cls._instance
class Singleton(object):
def __new__(cls, *args, **kw):
if not hasat ...
下载较大文件时分段下载会加速下载过程,几乎所有下载软件都有类似的特性。在python中如何实现分段下载文件呢?
>>> import urllib2
>>> req = urllib2.Request('http://www.python.org/')
#下载19000到20000字节的片段
>>> req.headers['Range'] = 'bytes=%s-%s' % (19000, 20000)
>>> f = urllib2.urlopen(req)
>>> pagerange ...
有时候会用到嵌套的列表(list),比如
[1, 2, [3, 4, [5, 6]], ["abc", "def"]]
如果将嵌套的列表拉平(flatten)呢?变成:
[1, 2, 3, 4, 5, 6, "abc", "def"]
方法有很多,目前了解到的各方面都比较好,也很pythonic的方法是:
def flatten(l):
for el in l:
if hasattr(el, "__iter__") and not isinstance(el, basest ...
aDict = {'key1':'value1', 'key2':'value2', 'key3':'value3'}
print '-----------dict-------------'
for d in aDict:
print "%s:%s" %(d, aDict[d])
print '-----------item-------------'
for (k,v) in aDict.items():
print '%s:%s' %(k, v)
#效率最高
print '------------iteritems---------' ...
Python迭代器 iterator
--by GhostFromHeaven
迭代器是一个实现迭代器协议的容器对象,它基于两个方法:
next 返回容器的下一个元素;
__iter__ 返回迭代器本身。
迭代器可以通过内置函数iter和一个序列作为参数
http://www.oracle.com/technetwork/java/javase/downloads/index.html#docs
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe
JDK6 API CHM中文参考下载:
JDK6API中文参考070114.rar :http://chinesedocument.com/upimg/soft/JDK6API中文参 ...
sudo apt-get install make gcc g++
再装上函数手册
sudo apt-get install manpages-dev
另一方法:
sudo apt-get install build-essential
执行完后,完成了gcc,g++,make的安装。 build-essential 是一整套工具,gcc,libc等等
如果没有multitask包,请从http://python-multitask.googlecode.com/files/multitask-0.2.0.zip下载
http://blog.csdn.net/ghostfromheaven/article/details/7061387
server端
from __future__ import with_statement
from contextlib import closing
import socket
import multitask
def client_handler(sock):
with cl ...
http://blog.csdn.net/ghostfromheaven/article/details/7039310
import threading
import time
class MyThread(threading.Thread):
def __init__(self, threadnum, max):
threading.Thread.__init__(self)
self.threadnum = threadnum
if (max < 0 ):
...