def test_same_thing(self): a = tempfile.gettempdir() b = tempfile.gettempdir() c = tempfile.gettempdirb() self.assertTrue(a is b) self.assertNotEqual(type(a), type(c)) self.assertEqual(a, os.fsdecode(c))
def parse_remote_path(save_path): if save_path is None or not save_path.startswith('s3://'): return None, save_path remote_path = save_path filename = os.path.basename(remote_path) save_path = "%s/%d-%s" % (gettempdirb().decode("utf-8"), time(), filename) return remote_path, save_path
def test_directory_exists(self): # gettempdir returns a directory which exists for d in (tempfile.gettempdir(), tempfile.gettempdirb()): self.assertTrue(os.path.isabs(d) or d == os.curdir, "%r is not an absolute path" % d) self.assertTrue(os.path.isdir(d), "%r is not a directory" % d)
def test_same_thing(self): # gettempdir always returns the same object a = tempfile.gettempdir() b = tempfile.gettempdir() c = tempfile.gettempdirb() self.assertTrue(a is b) self.assertNotEqual(type(a), type(c)) self.assertEqual(a, os.fsdecode(c))
def gettempdirb(self): """Same as :meth:`gettempdir()`, but the return value is ``bytes`` """ dir = self._resolve_tempdir() if dir is None: return tempfile.gettempdirb() if not isinstance(dir, bytes): return dir.encode() return dir
def test_basic_with_bytes_names(self): dir_b = tempfile.gettempdirb() self.do_create(dir=dir_b, suf=b'').write(b'blat') self.do_create(dir=dir_b, pre=b'a').write(b'blat') self.do_create(dir=dir_b, suf=b'b').write(b'blat') self.do_create(dir=dir_b, pre=b'a', suf=b'b').write(b'blat') self.do_create(dir=dir_b, pre=b'aa', suf=b'.txt').write(b'blat') with self.assertRaises(TypeError): self.do_create(dir='', suf=b'').write(b'blat') with self.assertRaises(TypeError): self.do_create(dir=dir_b, pre='').write(b'blat') with self.assertRaises(TypeError): self.do_create(dir=dir_b, pre=b'', suf='').write(b'blat')
def test_basic_with_bytes_names(self): d = tempfile.gettempdirb() os.rmdir(self.do_create(dir=d)) os.rmdir(self.do_create(dir=d, pre=b'a')) os.rmdir(self.do_create(dir=d, suf=b'b')) os.rmdir(self.do_create(dir=d, pre=b'a', suf=b'b')) os.rmdir(self.do_create(dir=d, pre=b'aa', suf=b'.txt')) with self.assertRaises(TypeError): os.rmdir(self.do_create(dir=d, pre='aa', suf=b'.txt')) with self.assertRaises(TypeError): os.rmdir(self.do_create(dir=d, pre=b'aa', suf='.txt')) with self.assertRaises(TypeError): os.rmdir(self.do_create(dir='', pre=b'aa', suf=b'.txt'))
def do_create(self, dir=None, pre=None, suf=None, bin=1): output_type = tempfile._infer_return_type(dir, pre, suf) if dir is None: if output_type is str: dir = tempfile.gettempdir() else: dir = tempfile.gettempdirb() if pre is None: pre = output_type() if suf is None: suf = output_type() file = self.mkstemped(dir, pre, suf, bin) self.nameCheck(file.name, dir, pre, suf) return file
def test_basic_with_bytes_names(self): # mkdtemp can create directories when given all binary parts d = tempfile.gettempdirb() os.rmdir(self.do_create(dir=d)) os.rmdir(self.do_create(dir=d, pre=b"a")) os.rmdir(self.do_create(dir=d, suf=b"b")) os.rmdir(self.do_create(dir=d, pre=b"a", suf=b"b")) os.rmdir(self.do_create(dir=d, pre=b"aa", suf=b".txt")) with self.assertRaises(TypeError): os.rmdir(self.do_create(dir=d, pre="aa", suf=b".txt")) with self.assertRaises(TypeError): os.rmdir(self.do_create(dir=d, pre=b"aa", suf=".txt")) with self.assertRaises(TypeError): os.rmdir(self.do_create(dir="", pre=b"aa", suf=b".txt"))
def test_basic_with_bytes_names(self): # _mkstemp_inner can create files when given name parts all # specified as bytes. dir_b = tempfile.gettempdirb() self.do_create(dir=dir_b, suf=b"").write(b"blat") self.do_create(dir=dir_b, pre=b"a").write(b"blat") self.do_create(dir=dir_b, suf=b"b").write(b"blat") self.do_create(dir=dir_b, pre=b"a", suf=b"b").write(b"blat") self.do_create(dir=dir_b, pre=b"aa", suf=b".txt").write(b"blat") # Can't mix str & binary types in the args. with self.assertRaises(TypeError): self.do_create(dir="", suf=b"").write(b"blat") with self.assertRaises(TypeError): self.do_create(dir=dir_b, pre="").write(b"blat") with self.assertRaises(TypeError): self.do_create(dir=dir_b, pre=b"", suf="").write(b"blat")
def test_basic_with_bytes_names(self): # mkstemp can create files when given name parts all # specified as bytes. d = tempfile.gettempdirb() self.do_create(dir=d, suf=b"") self.do_create(dir=d, pre=b"a") self.do_create(dir=d, suf=b"b") self.do_create(dir=d, pre=b"a", suf=b"b") self.do_create(dir=d, pre=b"aa", suf=b".txt") self.do_create(dir=b".") with self.assertRaises(TypeError): self.do_create(dir=".", pre=b"aa", suf=b".txt") with self.assertRaises(TypeError): self.do_create(dir=b".", pre="aa", suf=b".txt") with self.assertRaises(TypeError): self.do_create(dir=b".", pre=b"aa", suf=".txt")
def do_create(self, dir=None, pre=None, suf=None): output_type = tempfile._infer_return_type(dir, pre, suf) if dir is None: if output_type is str: dir = tempfile.gettempdir() else: dir = tempfile.gettempdirb() if pre is None: pre = output_type() if suf is None: suf = output_type() name = tempfile.mkdtemp(dir=dir, prefix=pre, suffix=suf) try: self.nameCheck(name, dir, pre, suf) return name except: os.rmdir(name) raise
def __init__(self, name: Optional[Union[bytes, bytearray, memoryview, str]] = None, max_waiters: int = 1024, allowed_inet_ports: Optional[Union[range, tuple, list]] = None): if isinstance(name, str): # Use ASCII bytes for maximum compatibility with file systems. name = name.encode('ascii') self._needs_unlink = False if SUPPORTS_ABSTRACT_SOCKS and SUPPORTS_CMSG_SHARE: self._addr_family = socket.AF_UNIX if not name: namelen = 107 - len(self.PREFIX) name = bytes([random.getrandbits(8) for _ in range(namelen)]) self._addr = b'\x00' + self.PREFIX + name elif SUPPORTS_UNIX_SOCKS and SUPPORTS_CMSG_SHARE: self._addr_family = socket.AF_UNIX if not name: name_len = random.randint(4, 22) name = bytes(random.choices(SIMPLE_CHAR_BYTES, k=name_len)) self._addr = os.path.join(tempfile.gettempdirb(), self.PREFIX + name) self._needs_unlink = True elif SUPPORTS_ANY_SHARE: allowed_inet_ports = allowed_inet_ports or DEFAULT_ALLOWED_PORTS if name: position = hash(name) % (len(allowed_inet_ports) + 1) port = allowed_inet_ports[position] else: port = name = random.choice(allowed_inet_ports) self._addr_family = socket.AF_INET self._addr = ('127.0.0.1', port) else: raise NotImplementedError( 'Socket handle sharing not implemented on this platform.') self._name = name self._max_waiters = max_waiters self._socket = None
def do_create(self, dir=None, pre=None, suf=None): output_type = tempfile._infer_return_type(dir, pre, suf) if dir is None: if output_type is str: dir = tempfile.gettempdir() else: dir = tempfile.gettempdirb() if pre is None: pre = output_type() if suf is None: suf = output_type() (fd, name) = tempfile.mkstemp(dir=dir, prefix=pre, suffix=suf) (ndir, nbase) = os.path.split(name) adir = os.path.abspath(dir) self.assertEqual(adir, ndir, "Directory '%s' incorrectly returned as '%s'" % (adir, ndir)) try: self.nameCheck(name, dir, pre, suf) finally: os.close(fd) os.unlink(name)
def update_event(self, inp=-1): self.set_output_val(0, tempfile.gettempdirb())
def test_directory_exists(self): for d in (tempfile.gettempdir(), tempfile.gettempdirb()): self.assertTrue( os.path.isabs(d) or d == os.curdir, '%r is not an absolute path' % d) self.assertTrue(os.path.isdir(d), '%r is not a directory' % d)
def _set_security_level(security_class, cmdpairs): """ If running client, set security level and restrict_path To find these settings, we must look at the action's security class to see what is supposed to happen, and then look at the cmdpairs to see what end the client is on. """ def islocal(cmdpair): return not cmdpair[0] def bothlocal(cp1, cp2): return islocal(cp1) and islocal(cp2) def bothremote(cp1, cp2): return not islocal(cp1) and not islocal(cp2) def getpath(cmdpair): return cmdpair[1] if security_class == "server": return cp1 = cmdpairs[0] if len(cmdpairs) > 1: cp2 = cmdpairs[1] else: cp2 = cp1 if security_class == "backup": if bothlocal(cp1, cp2) or bothremote(cp1, cp2): sec_level = "minimal" rdir = tempfile.gettempdirb() elif islocal(cp1): sec_level = "read-only" rdir = getpath(cp1) else: # cp2 is local but not cp1 sec_level = "update-only" rdir = getpath(cp2) elif security_class == "restore": if len(cmdpairs) == 1 or bothlocal(cp1, cp2) or bothremote(cp1, cp2): sec_level = "minimal" rdir = tempfile.gettempdirb() elif islocal(cp1): sec_level = "read-only" # FIXME it shouldn't be necessary to call back Main's function. Main.restore_set_root( rpath.RPath(Globals.local_connection, getpath(cp1))) if Main.restore_root: rdir = Main.restore_root.path else: log.Log.FatalError("Invalid restore directory") else: # cp2 is local but not cp1 sec_level = "all" rdir = getpath(cp2) elif security_class == "mirror": # compat200 not sure what this was?!? if bothlocal(cp1, cp2) or bothremote(cp1, cp2): sec_level = "minimal" rdir = tempfile.gettempdirb() elif islocal(cp1): sec_level = "read-only" rdir = getpath(cp1) else: # cp2 is local but not cp1 sec_level = "all" rdir = getpath(cp2) elif security_class == "validate": sec_level = "minimal" rdir = tempfile.gettempdirb() else: raise RuntimeError("Unknown action security class '{sec}'.".format( sec=security_class)) Globals.security_level = sec_level Globals.restrict_path = rpath.RPath(Globals.local_connection, rdir).normalize().path
# -*- encoding: utf-8 -*- import tempfile print("Dir temporal del sistema", tempfile.gettempdir()) print("Dir temporal (en bytes)", tempfile.gettempdirb()) # Python +3.5 print("Prefijo:", tempfile.gettempprefix()) print("Prefijo (en bytes)", tempfile.gettempprefixb()) # Python +3.5 #tempfile.tempdir = '/home/usuario/temp' print("Directorio temporal", tempfile.gettempdir()) print("Directorio temporal", tempfile.tempdir)
# tempfile.NamedTemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True) '''创建临时文件,与上述函数相比,当该程序向临时文件中写入数据时,会先写入到内存中,只到超过max_size才会真正的写入到物理磁盘中 增加的max_size参数默认为0,当内存中需要写入数据大小超过max_size后或文件的fileno()方法被调用时,将内容写入硬盘,此时操作与TemporaryFile一致''' # tempfile.SpooledTemporaryFile(max_size=0, mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None) '''生成临时目录''' # tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None) import tempfile fp = tempfile.TemporaryFile() print( fp.name) # C:\Users\dxj728\AppData\Local\Temp\tmppzl2lqxk \\ 返回临时文件路径名 print(tempfile.gettempdir() ) # C:\Users\dxj728\AppData\Local\Temp \\ 获取系统的临时目录 print(tempfile.gettempdirb() ) # b'C:\\Users\\dxj728\\AppData\\Local\\Temp' \\ 与上相同,只是返回字节串 print(tempfile.gettempprefix() ) # tmp \\ 返回用于生成临时文件的前缀名 print(tempfile.gettempprefixb() ) # b'tmp' \\ 与上相同,只是返回字节串 fp.write('hello'.encode('utf-8')) fp.write('world'.encode('utf-8')) fp.seek(0) # 文件指针移到开始处,准备读取文件 print(fp.read().decode('utf-8')) fp.close() # 关闭临时文件,该文件会被自动删除 with tempfile.TemporaryDirectory() as fd: # 使用with语句创建临时目录
def tmp11(): print(tempfile.gettempdir()) print(tempfile.gettempprefix()) print(tempfile.gettempdirb()) print(tempfile.gettempprefixb()) print(os.sep)
def test181(): print(tempfile.gettempdir()) print(tempfile.gettempprefix()) print(tempfile.gettempdirb())
def _set_security_level(security_class, security_level, restrict_path, cmdpairs): """ If running client, set security level and restrict_path To find these settings, we must look at the action's security class to see what is supposed to happen, and then look at the cmdpairs to see what end the client is on, unless we're in server security class, in which case, we just return what's been chosen by the user. """ def islocal(cmdpair): return not cmdpair[0] def bothlocal(cp1, cp2): return islocal(cp1) and islocal(cp2) def bothremote(cp1, cp2): return not islocal(cp1) and not islocal(cp2) def getpath(cmdpair): return cmdpair[1] # in security class model, we use the restrictions given by the user if security_class is None or security_class == "server": return (security_level, restrict_path) cp1 = cmdpairs[0] if len(cmdpairs) > 1: cp2 = cmdpairs[1] else: cp2 = cp1 if security_class == "backup": if bothlocal(cp1, cp2) or bothremote(cp1, cp2): sec_level = "minimal" rdir = tempfile.gettempdirb() elif islocal(cp1): sec_level = "read-only" rdir = getpath(cp1) else: # cp2 is local but not cp1 sec_level = "update-only" rdir = getpath(cp2) elif security_class == "restore": if len(cmdpairs) == 1 or bothlocal(cp1, cp2) or bothremote(cp1, cp2): sec_level = "minimal" rdir = tempfile.gettempdirb() elif islocal(cp1): sec_level = "read-only" rp1 = rpath.RPath(Globals.local_connection, getpath(cp1)) (base_dir, restore_index, restore_type) = rp1.get_repository_dirs() if restore_type is None: # the error will be catched later more cleanly, so that the # connections can be properly closed log.Log( "Invalid restore directory '{rd}'".format(rd=getpath(cp1)), log.ERROR) rdir = base_dir.path else: # cp2 is local but not cp1 sec_level = "read-write" rdir = getpath(cp2) elif security_class == "mirror": # compat200 not sure what this was?!? if bothlocal(cp1, cp2) or bothremote(cp1, cp2): sec_level = "minimal" rdir = tempfile.gettempdirb() elif islocal(cp1): sec_level = "read-only" rdir = getpath(cp1) else: # cp2 is local but not cp1 sec_level = "read-write" rdir = getpath(cp2) elif security_class == "validate": sec_level = "minimal" rdir = tempfile.gettempdirb() else: raise RuntimeError("Unknown action security class '{sec}'.".format( sec=security_class)) return (sec_level, rdir)
import tempfile import os print("test tempfile") if not tempfile.tempdir is None: print("tempfile.tempdir is not None: %s" % (tempfile.tempdir, )) else: print("tempfile.tempdir is None [OK]") v = tempfile.gettempdir() if type(v) != type(""): print("tempfile.gettempdir() returned %s (type=%s)" % (v, type(v))) v = tempfile.gettempdirb() if type(v) != type(b""): print("tempfile.gettempdirb() returned %s (type=%s)" % (v, type(v))) ## mkdtemp try: tmp = tempfile.mkdtemp() os.rmdir(tmp) print("mkdtemp() [OK]") except Exception as e: print("could not create tmp dir w/ mkdtemp(): %s" % e) try: tmp = tempfile.mkdtemp(prefix="prefix-", suffix="-suffix") os.rmdir(tmp) print("mkdtemp(prefix='prefix-', suffix='-suffix') [OK]")