gpt4 book ai didi

python - 如何使用 Python 将自定义 linux stdout 粘贴到 JSON 中?

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:12 25 4
gpt4 key购买 nike

我是 Python 的初学者,我正在尝试编写一个脚本,该脚本将接收 unix stdout 文件并将其转换为 JSON 格式文件。文件的每一行格式如下:

inodeNumber fileSize ownerName pathToFile

路径可以包含空格和反斜杠字符,例如:

236342512 200 George usr/temp/a\ path/random1.txt

现在我的问题是,如果我使用 split("") 方法并将其存储到字典中,文件路径中的空格将为路径创建超过 1 个键值。我已经考虑过对其进行编码,但它仍然无法解决路径中的空间问题,因为该空间也会被编码。

我尝试获取的JSON格式如下:

{
"files": [{
"inodeNumber": "236342512",
"fileSize": "200",
"ownerName": "George",
"pathToFile": "usr/temp/a\ path/random1.txt"
},
{...}]
}

此外,将自定义 unix stdout 文件转换为 JSON 以将每个属性存储到 Python 字典中的键值对,然后创建 JSON 对象并将其转储到文件中的最佳解决方案是什么?我将处理非常大的文件(每个超过 1GB!),因此也需要考虑性能。

提前致谢!

最佳答案

我将使用此方法来解析该行,因为它不假设任何有关路径的信息:

s = r'236342512 200 George usr/temp/a\ path/random1.txt'

def parseLine(s):
sList = s.split(' ')
D = {}
D['inodeNumber'] = sList[0]
D['fileSize'] = sList[1]
D['ownerName'] = sList[2]
D['pathToFile'] = ' '.join(sList[3:])
return D

print(parseLine(s))

对于你的例子,它给出了这个输出:

{'inodeNumber': '236342512', 'fileSize': '200', 'ownerName': 'George', 'pathToFile': 'usr/temp/a\\ path/random1.txt'}

关于python - 如何使用 Python 将自定义 linux stdout 粘贴到 JSON 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44222352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com