當前位置: 首頁>>代碼示例>>Python>>正文


Python StringIO.close方法代碼示例

本文整理匯總了Python中fs.filelike.StringIO.close方法的典型用法代碼示例。如果您正苦於以下問題:Python StringIO.close方法的具體用法?Python StringIO.close怎麽用?Python StringIO.close使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在fs.filelike.StringIO的用法示例。


在下文中一共展示了StringIO.close方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: __init__

# 需要導入模塊: from fs.filelike import StringIO [as 別名]
# 或者: from fs.filelike.StringIO import close [as 別名]
    def __init__(self, fs, path, mode, rfile=None, write_on_flush=True):
        """RemoteFileBuffer constructor.

        The owning filesystem, path and mode must be provided.  If the
        optional argument 'rfile' is provided, it must be a read()-able
        object or a string containing the initial file contents.
        """
        wrapped_file = SpooledTemporaryFile(max_size=self.max_size_in_memory)
        self.fs = fs
        self.path = path
        self.write_on_flush = write_on_flush
        self._changed = False
        self._readlen = 0  # How many bytes already loaded from rfile
        self._rfile = None  # Reference to remote file object
        self._eof = False  # Reached end of rfile?
        if getattr(fs, "_lock", None) is not None:
            self._lock = fs._lock.__class__()
        else:
            self._lock = threading.RLock()

        if "r" in mode or "+" in mode or "a" in mode:
            if rfile is None:
                # File was just created, force to write anything
                self._changed = True
                self._eof = True

            if not hasattr(rfile, "read"):
                #rfile = StringIO(unicode(rfile))
                rfile = StringIO(rfile)

            self._rfile = rfile
        else:
            # Do not use remote file object
            self._eof = True
            self._rfile = None
            self._changed = True
            if rfile is not None and hasattr(rfile,"close"):
                rfile.close()
        super(RemoteFileBuffer,self).__init__(wrapped_file,mode)
        # FIXME: What if mode with position on eof?
        if "a" in mode:
            # Not good enough...
            self.seek(0, SEEK_END)
開發者ID:DANCEcollaborative,項目名稱:forum-xblock,代碼行數:45,代碼來源:remote.py

示例2: open

# 需要導入模塊: from fs.filelike import StringIO [as 別名]
# 或者: from fs.filelike.StringIO import close [as 別名]
    def open(self, path, mode='r', buffering=-1, encoding=None, errors=None, newline=None, line_buffering=False, **kwargs):
        # TODO: chunked transport of large files
        epath = self.encode_path(path)
        if "w" in mode:
            self.proxy.set_contents(epath, xmlrpclib.Binary(b("")))
        if "r" in mode or "a" in mode or "+" in mode:
            try:
                data = self.proxy.get_contents(epath, "rb").data
            except IOError:
                if "w" not in mode and "a" not in mode:
                    raise ResourceNotFoundError(path)
                if not self.isdir(dirname(path)):
                    raise ParentDirectoryMissingError(path)
                self.proxy.set_contents(path, xmlrpclib.Binary(b("")))
        else:
            data = b("")
        f = StringIO(data)
        if "a" not in mode:
            f.seek(0, 0)
        else:
            f.seek(0, 2)
        oldflush = f.flush
        oldclose = f.close
        oldtruncate = f.truncate

        def newflush():
            self._lock.acquire()
            try:
                oldflush()
                self.proxy.set_contents(epath, xmlrpclib.Binary(f.getvalue()))
            finally:
                self._lock.release()

        def newclose():
            self._lock.acquire()
            try:
                f.flush()
                oldclose()
            finally:
                self._lock.release()

        def newtruncate(size=None):
            self._lock.acquire()
            try:
                oldtruncate(size)
                f.flush()
            finally:
                self._lock.release()

        f.flush = newflush
        f.close = newclose
        f.truncate = newtruncate
        return f
開發者ID:Liryna,項目名稱:pyfilesystem,代碼行數:55,代碼來源:rpcfs.py

示例3: open

# 需要導入模塊: from fs.filelike import StringIO [as 別名]
# 或者: from fs.filelike.StringIO import close [as 別名]
 def open(self, path, mode="r"):
     # TODO: chunked transport of large files
     path = self.encode_path(path)
     if "w" in mode:
         self.proxy.set_contents(path,xmlrpclib.Binary(""))
     if "r" in mode or "a" in mode or "+" in mode:
         try:
             data = self.proxy.get_contents(path).data
         except IOError:
             if "w" not in mode and "a" not in mode:
                 raise ResourceNotFoundError(path)
             if not self.isdir(dirname(path)):
                 raise ParentDirectoryMissingError(path)
             self.proxy.set_contents(path,xmlrpclib.Binary(""))
     else:
         data = ""
     f = StringIO(data)
     if "a" not in mode:
         f.seek(0,0)
     else:
         f.seek(0,2)
     oldflush = f.flush
     oldclose = f.close
     oldtruncate = f.truncate
     def newflush():
         oldflush()
         self.proxy.set_contents(path,xmlrpclib.Binary(f.getvalue()))
     def newclose():
         f.flush()
         oldclose()
     def newtruncate(size=None):
         oldtruncate(size)
         f.flush()
     f.flush = newflush
     f.close = newclose
     f.truncate = newtruncate
     return f
開發者ID:atty303,項目名稱:pyfilesystem,代碼行數:39,代碼來源:rpcfs.py


注:本文中的fs.filelike.StringIO.close方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。