⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fakeopen.py

📁 一个多点下载且源码公开的P2P软件
💻 PY
字号:
# Written by Bram Cohen# see LICENSE.txt for license informationfrom string import joinclass FakeHandle:    def __init__(self, name, fakeopen):        self.name = name        self.fakeopen = fakeopen        self.pos = 0        def flush(self):        pass        def close(self):        pass        def seek(self, pos):        self.pos = pos        def read(self, amount = None):        old = self.pos        f = self.fakeopen.files[self.name]        if self.pos >= len(f):            return ''        if amount is None:            self.pos = len(f)            return join(f[old:], '')        else:            self.pos = min(len(f), old + amount)            return join(f[old:self.pos], '')        def write(self, s):        f = self.fakeopen.files[self.name]        while len(f) < self.pos:            f.append(chr(0))        self.fakeopen.files[self.name][self.pos : self.pos + len(s)] = list(s)        self.pos += len(s)class FakeOpen:    def __init__(self, initial = {}):        self.files = {}        for key, value in initial.items():            self.files[key] = list(value)        def open(self, filename, mode):        """currently treats everything as rw - doesn't support append"""        self.files.setdefault(filename, [])        return FakeHandle(filename, self)    def exists(self, file):        return self.files.has_key(file)    def getsize(self, file):        return len(self.files[file])def test_normal():    f = FakeOpen({'f1': 'abcde'})    assert f.exists('f1')    assert not f.exists('f2')    assert f.getsize('f1') == 5    h = f.open('f1', 'rw')    assert h.read(3) == 'abc'    assert h.read(1) == 'd'    assert h.read() == 'e'    assert h.read(2) == ''    h.write('fpq')    h.seek(4)    assert h.read(2) == 'ef'    h.write('ghij')    h.seek(0)    assert h.read() == 'abcdefghij'    h.seek(2)    h.write('p')    h.write('q')    assert h.read(1) == 'e'    h.seek(1)    assert h.read(5) == 'bpqef'    h2 = f.open('f2', 'rw')    assert h2.read() == ''    h2.write('mnop')    h2.seek(1)    assert h2.read() == 'nop'        assert f.exists('f1')    assert f.exists('f2')    assert f.getsize('f1') == 10    assert f.getsize('f2') == 4

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -