本文整理汇总了Python中zipfile.ZipFile.close方法的典型用法代码示例。如果您正苦于以下问题:Python ZipFile.close方法的具体用法?Python ZipFile.close怎么用?Python ZipFile.close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zipfile.ZipFile
的用法示例。
在下文中一共展示了ZipFile.close方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: export_gtfs
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def export_gtfs(self, gtfs_file):
"""Export a GTFS file as feed
Keyword arguments:
gtfs_file - A path or file-like object for the GTFS feed
This function will close the file in order to finalize it.
"""
z = ZipFile(gtfs_file, 'w')
gtfs_order = (
('agency.txt', Agency),
('calendar.txt', Service),
('calendar_dates.txt', ServiceDate),
('fare_attributes.txt', Fare),
('fare_rules.txt', FareRule),
('feed_info.txt', FeedInfo),
('frequencies.txt', Frequency),
('routes.txt', Route),
('shapes.txt', ShapePoint),
('stop_times.txt', StopTime),
('stops.txt', Stop),
('transfers.txt', Transfer),
('trips.txt', Trip),
)
for filename, exporter in gtfs_order:
content = exporter.objects.in_feed(self).export_txt()
if content:
z.writestr(filename, content)
z.close()
示例2: build
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def build(worker_dir, sha, repo_url, destination, concurrency):
"""Download and build sources in a temporary directory then move exe to destination"""
tmp_dir = tempfile.mkdtemp()
os.chdir(tmp_dir)
with open('sf.gz', 'wb+') as f:
f.write(requests.get(github_api(repo_url) + '/zipball/' + sha).content)
zip_file = ZipFile('sf.gz')
zip_file.extractall()
zip_file.close()
for name in zip_file.namelist():
if name.endswith('/src/'):
src_dir = name
os.chdir(src_dir)
custom_make = os.path.join(worker_dir, 'custom_make.txt')
if os.path.exists(custom_make):
with open(custom_make, 'r') as m:
make_cmd = m.read().strip()
subprocess.check_call(make_cmd, shell=True)
else:
subprocess.check_call(MAKE_CMD + ' -j %s' % (concurrency), shell=True)
shutil.move('stockfish'+ EXE_SUFFIX, destination)
os.chdir(worker_dir)
shutil.rmtree(tmp_dir)
示例3: main
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def main():
# test if PyXML is installed
try:
import _xmlplus.parsers.expat
pyxml = '--includes _xmlplus.parsers.expat'
except ImportError:
pyxml = ''
# create exe
status = os.system('python setup.py py2exe %s >& build.log' % pyxml)
if status != 0:
raise RuntimeError, 'Error creating EXE'
# create distribution
import pyste
version = pyste.__VERSION__
zip = ZipFile('pyste-%s.zip' % version, 'w', ZIP_DEFLATED)
# include the base files
dist_dir = 'dist/pyste'
for basefile in os.listdir(dist_dir):
zip.write(os.path.join(dist_dir, basefile), os.path.join('pyste', basefile))
# include documentation
for doc_file in findfiles('../doc', '*.*'):
dest_name = os.path.join('pyste/doc', doc_file[3:])
zip.write(doc_file, dest_name)
zip.write('../index.html', 'pyste/doc/index.html')
zip.close()
# cleanup
os.remove('build.log')
shutil.rmtree('build')
shutil.rmtree('dist')
示例4: aqcuire_all_resources
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def aqcuire_all_resources(self, format_dict):
import cStringIO as StringIO
from zipfile import ZipFile
# Download archive.
url = self.url(format_dict)
shapefile_online = self._urlopen(url)
zfh = ZipFile(StringIO.StringIO(shapefile_online.read()), 'r')
shapefile_online.close()
# Iterate through all scales and levels and extract relevant files.
modified_format_dict = dict(format_dict)
scales = ('c', 'l', 'i', 'h', 'f')
levels = (1, 2, 3, 4)
for scale, level in itertools.product(scales, levels):
modified_format_dict.update({'scale': scale, 'level': level})
target_path = self.target_path(modified_format_dict)
target_dir = os.path.dirname(target_path)
if not os.path.isdir(target_dir):
os.makedirs(target_dir)
for member_path in self.zip_file_contents(modified_format_dict):
ext = os.path.splitext(member_path)[1]
target = os.path.splitext(target_path)[0] + ext
member = zfh.getinfo(member_path)
with open(target, 'wb') as fh:
fh.write(zfh.open(member).read())
zfh.close()
示例5: _render_zip
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def _render_zip(self, req, filename, repos, diff):
"""ZIP archive with all the added and/or modified files."""
new_rev = diff.new_rev
req.send_response(200)
req.send_header('Content-Type', 'application/zip')
req.send_header('Content-Disposition', 'attachment;'
'filename=%s.zip' % filename)
from zipfile import ZipFile, ZipInfo, ZIP_DEFLATED
buf = StringIO()
zipfile = ZipFile(buf, 'w', ZIP_DEFLATED)
for old_node, new_node, kind, change in repos.get_changes(**diff):
if kind == Node.FILE and change != Changeset.DELETE:
assert new_node
zipinfo = ZipInfo()
zipinfo.filename = new_node.path.encode('utf-8')
# Note: unicode filenames are not supported by zipfile.
# UTF-8 is not supported by all Zip tools either,
# but as some does, I think UTF-8 is the best option here.
zipinfo.date_time = time.gmtime(new_node.last_modified)[:6]
zipinfo.compress_type = ZIP_DEFLATED
zipfile.writestr(zipinfo, new_node.get_content().read())
zipfile.close()
buf.seek(0, 2) # be sure to be at the end
req.send_header("Content-Length", buf.tell())
req.end_headers()
req.write(buf.getvalue())
示例6: pack
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def pack(self, output_dir, devel=False, force=False, keep_temp=False):
self.output_dir = os.path.realpath(output_dir)
if not os.path.exists(self.output_dir):
os.makedirs(self.output_dir)
self.force = force
self.keep_temp = keep_temp
paths = []
self.merge_modules = {}
# create runtime package
p = self._create_msi_installer(PackageType.RUNTIME)
paths.append(p)
# create devel package
if devel and not isinstance(self.package, App):
p = self._create_msi_installer(PackageType.DEVEL)
paths.append(p)
# create zip with merge modules
self.package.set_mode(PackageType.RUNTIME)
zipf = ZipFile(os.path.join(self.output_dir, '%s-merge-modules.zip' %
self._package_name()), 'w')
for p in self.merge_modules[PackageType.RUNTIME]:
zipf.write(p)
zipf.close()
if not keep_temp:
for msms in self.merge_modules.values():
for p in msms:
os.remove(p)
return paths
示例7: save_pickle_in_cfile
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def save_pickle_in_cfile(self, local_fname, networkref):
""" Creates a pickled version of the graph and stores it in the
cfile
Parameters
----------
local_fname: string
The filename used in the Pickle folder to store
networkref: NetworkX Graph instance
The NetworkX graph to pickle
"""
logger.info('Write a generated graph pickle to the connectome file.')
picklefilepath = os.path.join(tempfile.gettempdir(),local_fname)
from networkx import write_gpickle
# add nodekeys, edgekeys, graphid to helpernode 'n0' before storage
helperdict = {'nodekeys': networkref.nodekeys.copy(), \
'edgekeys': networkref.edgekeys.copy(), \
'graphid' : networkref.networkid }
networkref.graph.add_node('n0')
networkref.graph.node['n0'] = helperdict
write_gpickle(networkref.graph, picklefilepath)
networkref.graph.remove_node('n0')
from zipfile import ZipFile, ZIP_DEFLATED
tmpzipfile = ZipFile(self.data.fullpathtofile, 'a', ZIP_DEFLATED)
# store it in the zip file
tmpzipfile.write(picklefilepath, 'Pickle/' + local_fname)
tmpzipfile.close()
# remove pickle file from system
logger.debug('Unlink: %s' % picklefilepath)
os.unlink(picklefilepath)
示例8: preloadFont
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def preloadFont(cls, font, directory=DEFAULT_DIR):
"""
Load font file into memory. This can be overriden with
a superclass to create different font sources.
"""
fontPath = os.path.join(directory, font + ".flf")
if not os.path.exists(fontPath):
fontPath = os.path.join(directory, font + ".tlf")
if not os.path.exists(fontPath):
raise pyfiglet.FontNotFound("%s doesn't exist" % font)
if is_zipfile(fontPath):
z = None
try:
z = ZipFile(fontPath, "r")
data = z.read(z.getinfo(z.infolist()[0].filename))
z.close()
return data.decode("utf-8", "replace") if ST3 else data
except Exception as e:
if z is not None:
z.close()
raise pyfiglet.FontError("couldn't read %s: %s" % (fontPath, e))
else:
try:
with open(fontPath, "rb") as f:
data = f.read()
return data.decode("utf-8", "replace") if ST3 else data
except Exception as e:
raise pyfiglet.FontError("couldn't open %s: %s" % (fontPath, e))
raise pyfiglet.FontNotFound(font)
示例9: test_replace_metadata
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def test_replace_metadata(self):
old_zip_file = get_test_zipfile('LotsOfFiles')
metadata = models.parse_zipfile_metadata(old_zip_file)
old_zip_file.seek(0)
extension = models.Extension.objects.create_from_metadata(metadata, creator=self.user)
version = models.ExtensionVersion(extension=extension,
source=File(old_zip_file))
version.parse_metadata_json(metadata)
new_zip = version.get_zipfile('r')
old_zip = ZipFile(File(old_zip_file), 'r')
self.assertEqual(len(old_zip.infolist()), len(new_zip.infolist()))
self.assertEqual(new_zip.read("metadata.json"),
version.make_metadata_json_string())
for old_info in old_zip.infolist():
if old_info.filename == "metadata.json":
continue
new_info = new_zip.getinfo(old_info.filename)
self.assertEqual(old_zip.read(old_info), new_zip.read(new_info))
self.assertEqual(old_info.date_time, new_info.date_time)
old_zip.close()
new_zip.close()
示例10: get_info
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def get_info(in_stream):
""" Return the version and submitter strings from zipfile byte stream. """
arch = ZipFile(in_stream, 'r')
try:
return unpack_info(arch.read('__INFO__'))
finally:
arch.close()
示例11: testZipImporterMethodsInSubDirectory
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def testZipImporterMethodsInSubDirectory(self):
packdir = TESTPACK + os.sep
packdir2 = packdir + TESTPACK2 + os.sep
files = {packdir2 + "__init__" + pyc_ext: (NOW, test_pyc),
packdir2 + TESTMOD + pyc_ext: (NOW, test_pyc)}
z = ZipFile(TEMP_ZIP, "w")
try:
for name, (mtime, data) in files.items():
zinfo = ZipInfo(name, time.localtime(mtime))
zinfo.compress_type = self.compression
z.writestr(zinfo, data)
z.close()
zi = zipimport.zipimporter(TEMP_ZIP + os.sep + packdir)
self.assertEquals(zi.archive, TEMP_ZIP)
self.assertEquals(zi.prefix, packdir)
self.assertEquals(zi.is_package(TESTPACK2), True)
zi.load_module(TESTPACK2)
self.assertEquals(zi.is_package(TESTPACK2 + os.sep + '__init__'), False)
self.assertEquals(zi.is_package(TESTPACK2 + os.sep + TESTMOD), False)
mod_name = TESTPACK2 + os.sep + TESTMOD
mod = __import__(module_path_to_dotted_name(mod_name))
self.assertEquals(zi.get_source(TESTPACK2), None)
self.assertEquals(zi.get_source(mod_name), None)
finally:
z.close()
os.remove(TEMP_ZIP)
示例12: getZipForLanguages
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def getZipForLanguages(self, languages, path=None):
self.verifyPaths()
# strip out any duplicates
languages = list(set(languages))
write_to = StringIO() if path is None else path
zip_file = ZipFile(write_to, 'w')
zip_file.write(self.getRainbowPath(), 'rainbow.js', zipfile.ZIP_DEFLATED)
# include minimized version even when downloading the dev version
zip_file.write(self.getRainbowPath().replace('.js', '.min.js'), 'rainbow.min.js', zipfile.ZIP_DEFLATED)
# include themes as well
if self.theme_path:
files = glob.glob(self.theme_path + '/*.css')
for file_name in files:
zip_file.write(file_name, os.path.join('themes', os.path.basename(file_name)), zipfile.ZIP_DEFLATED)
for language in languages:
zip_file.write(self.getPathForLanguage(language), os.path.join('language', language + '.js'), zipfile.ZIP_DEFLATED)
zip_file.close()
return write_to
示例13: logs
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def logs(request):
db = sqlite3.connect(r'C:\Users\Administrator\Desktop\Raspi\mysite\newdb.db')
cursor = db.cursor()
cursor.execute('SELECT * FROM connhistory')
data = cursor.fetchall()
with open("data.csv", 'wb')as csvfile:
writer = csv.writer(csvfile)
for row in data:
writer.writerow(list(row))
with open("data.csv", 'rb')as csvfile:
data = csvfile.read()
in_memory = StringIO()
zip = ZipFile(in_memory, "a")
zip.writestr("data.csv",data)
zip.close()
response = HttpResponse(content_type="application/zip;")
response["Content-Disposition"] = "attachment; filename=zipfiles.zip"
in_memory.seek(0)
response.write(in_memory.read())
return response
示例14: zip_layer_folder
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def zip_layer_folder(dir_path, layer_name):
"""
Create a zip archive with the content of the folder located at `dir_path`
and name it with `layer_name`.
Parameters
----------
dir_path: str
The path to the temporary folder in which are located the files to
be zipped.
layer_name: str
The name of the concerned layer (will be used as file name for the
zip archive).
Returns
-------
raw_content: str
The zip archive
archive_name: str
The name of the archive (used later in the header of the response).
"""
filenames = os.listdir(dir_path)
zip_stream = BytesIO()
myZip = ZipFile(zip_stream, "w", compression=ZIP_DEFLATED)
for filename in filenames:
if not filename.endswith('.geojson'):
f_name = path_join(dir_path, filename)
myZip.write(f_name, filename, ZIP_DEFLATED)
myZip.close()
zip_stream.seek(0)
return zip_stream.read(), ''.join([layer_name, ".zip"])
示例15: createDevEnv
# 需要导入模块: from zipfile import ZipFile [as 别名]
# 或者: from zipfile.ZipFile import close [as 别名]
def createDevEnv(baseDir, type):
fileBuffer = StringIO()
createBuild(baseDir, type=type, outFile=fileBuffer, devenv=True, releaseBuild=True)
from zipfile import ZipFile
zip = ZipFile(StringIO(fileBuffer.getvalue()), 'r')
zip.extractall(os.path.join(baseDir, 'devenv'))
zip.close()
print 'Development environment created, waiting for connections from active extensions...'
metadata = readMetadata(baseDir, type)
connections = [0]
import SocketServer, time, thread
class ConnectionHandler(SocketServer.BaseRequestHandler):
def handle(self):
connections[0] += 1
self.request.sendall('HTTP/1.0 OK\nConnection: close\n\n%s' % metadata.get('general', 'basename'))
server = SocketServer.TCPServer(('localhost', 43816), ConnectionHandler)
def shutdown_server(server):
time.sleep(10)
server.shutdown()
thread.start_new_thread(shutdown_server, (server,))
server.serve_forever()
if connections[0] == 0:
print 'Warning: No incoming connections, extension probably not active in the browser yet'
else:
print 'Handled %i connection(s)' % connections[0]