如何用Python将定制的linux标准输出粘贴到JSON中?

2024-09-28 01:33:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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

inodeNumber fileSize ownerName pathToFile

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

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

现在我的问题是,如果使用split(“”)方法并将其存储到字典中,文件路径中的空白将为路径创建多个键值。我已经考虑过对它进行编码,但是它仍然不能解决路径中的空间问题,因为空间也会被编码。你知道吗

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

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

另外,将自定义unix标准输出文件转换为JSON,将每个属性存储到Python字典中的键值对中,然后创建JSON对象并将其转储到文件中,这样做的最佳解决方案是什么?我将与非常大的文件(超过1gb的每个!)所以性能也需要考虑。你知道吗

提前谢谢!你知道吗


Tags: 文件path路径脚本json标准usr格式
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:12

我将使用此方法来解析行,因为它不假定任何关于路径的内容:

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'}

相关问题 更多 >

    热门问题