所以基本上我有一个像这样的文件系统:
$ajaxJs = <<< JS
function(e) {
doc = new DOMParser().parseFromString(`<li class="p1 mb1 blue bg-white">${e.currentTarget.options[e.currentTarget.options.selectedIndex].text}</li>`, "text/html").body.firstChild;
document.querySelector('.js-sortable-buttons').appendChild(doc);
}
JS;
此存档中有数百个文件...基本上,yii2-sortable
包可以与Python 3中的多个文件一起使用吗?我只使用压缩的单个文件,因此我不知道如何浏览多个文件或多个级别的&#34;压缩&#34;。
我通常的解压缩方法是:
// Select the node that will be observed for mutations
var targetNode = document.getElementById('some-id');
// Options for the observer (which mutations to observe)
var config = { attributes: true, childList: true };
// Callback function to execute when mutations are observed
var callback = function(mutationsList) {
for(var mutation of mutationsList) {
if (mutation.type == 'childList') {
console.log('A child node has been added or removed.');
}
else if (mutation.type == 'attributes') {
console.log('The ' + mutation.attributeName + ' attribute was modified.');
}
}
};
// Create an observer instance linked to the callback function
var observer = new MutationObserver(callback);
// Start observing the target node for configured mutations
observer.observe(targetNode, config);
// Later, you can stop observing
observer.disconnect();
当然,这有很多问题,因为通常&#34; f&#34;只是一个文件...但是现在我不确定它代表什么?
非常感谢任何帮助/建议!
编辑1:
我已经接受了以下答案,但如果您正在寻找类似的代码,我的骨干基本上就是:
main_archive.tar.gz
main_archive.tar
sub_archive.xml.gz
actual_file.xml
使用的主要包是gzip
,with gzip.open(file_path, "rb") as f:
for ln in f.readlines():
*decode encoding here*
和tar = tarfile.open(file_path, mode="r")
for member in tar.getmembers():
f = tar.extractfile(member)
if verbose:
print("Decoding", member.name, "...")
with gzip.open(f, "rb") as temp:
decoded = temp.read().decode("UTF-8")
e = xml.etree.ElementTree.parse(decoded).getroot()
for child in e:
print(child.tag)
print(child.attrib)
print("\n\n")
tar.close()
。
答案 0 :(得分:1)
gzip
仅支持压缩单个文件或流。在您的情况下,exrtacted流是tar
对象,因此您使用Python tarfile
library来操作提取的内容。该库实际上知道如何应对.tar.gz
,因此您不需要自己明确提取gzip
。
答案 1 :(得分:0)
使用Python的tarfile获取包含的文件,然后在循环内再次使用Python的gzip来提取xml。