我正在尝试创建一个临时文件,我在另一个文件的某些行中编写,然后从数据中创建一些对象.我不知道如何找到并打开临时文件,以便我可以阅读它.我的代码:
with tempfile.TemporaryFile() as tmp:
lines = open(file1).readlines()
tmp.writelines(lines[2:-1])
dependencyList = []
for line in tmp:
groupId = textwrap.dedent(line.split(':')[0])
artifactId = line.split(':')[1]
version = line.split(':')[3]
scope = str.strip(line.split(':')[4])
dependencyObject = depenObj(groupId, artifactId, version, scope)
dependencyList.append(dependencyObject)
tmp.close()
Run Code Online (Sandbox Code Playgroud)
基本上我只是想制作一个中间人临时文件,以防止意外覆盖文件.
我正在尝试让范围内的 npm 包与 Apache 背后的 Artifactory 一起使用。我可以将范围包发布到 Artifactory,它会在 npm-local 存储库中创建以下路径:@scopename/packagename/-/@scopename/packagename-version.tgz
我在尝试安装此软件包时出现问题。我得到一个404 Not Found: @scopename/packagename. 查看调试日志,我可以发现它可能与斜杠的编码有关:
22 http request GET https://artifacts.company.com/artifactory/api/npm/npm-local/@scopename%2fpackagename
23 http 404 https://artifacts.company.com/artifactory/api/npm/npm-local/@scopename%2fpackagename
Run Code Online (Sandbox Code Playgroud)
我已遵循在线文档。我添加AllowEncodedSlashes NoDecode到虚拟主机和org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=truetomcat 上的 catalina.properties 文件。
我错过了什么吗?
我有一个小脚本,它创建一个 xml 文档并使用prettyprint=true它制作一个格式正确的 xml 文档。但是,制表符缩进是 2 个空格,我想知道是否有办法将其更改为 4 个空格(我认为 4 个空格看起来更好)。有没有一种简单的方法来实现这一点?
代码片段:
doc = lxml.etree.SubElement(root, 'dependencies')
for depen in dependency_list:
dependency = lxml.etree.SubElement(doc, 'dependency')
lxml.etree.SubElement(dependency, 'groupId').text = depen.group_id
lxml.etree.SubElement(dependency, 'artifactId').text = depen.artifact_id
lxml.etree.SubElement(dependency, 'version').text = depen.version
if depen.scope == 'provided' or depen.scope == 'test':
lxml.etree.SubElement(dependency, 'scope').text = depen.scope
exclusions = lxml.etree.SubElement(dependency, 'exclusions')
exclusion = lxml.etree.SubElement(exclusions, 'exclusion')
lxml.etree.SubElement(exclusion, 'groupId').text = '*'
lxml.etree.SubElement(exclusion, 'artifactId').text = '*'
tree.write('explicit-pom.xml' , pretty_print=True)
Run Code Online (Sandbox Code Playgroud)