Python 3.x 在Python中将字符串转换为类对象

Python 3.x 在Python中将字符串转换为类对象,python-3.x,Python 3.x,我有一个字符串列表。列表的每个字符串具有相同的格式。我想将每个字符串转换成一个类对象(如果这是最好的选择),这样我就可以对类对象列表进行一些分析 例如, 我有以下清单 ls_list = ['-rw-r--r-- 1 ahmed None 0 Apr 21 17:10 bar1', '-rw-r--r-- 1 ahmed None 0 Apr 21 17:10 bar2', '-rw-r--r-- 1 ahmed None 0 Apr 21 17:10 foo1', '-rw-r--r-- 1

我有一个字符串列表。列表的每个字符串具有相同的格式。我想将每个字符串转换成一个类对象(如果这是最好的选择),这样我就可以对类对象列表进行一些分析

例如,

我有以下清单

ls_list = ['-rw-r--r-- 1 ahmed None 0 Apr 21 17:10 bar1',
'-rw-r--r-- 1 ahmed None 0 Apr 21 17:10 bar2',
'-rw-r--r-- 1 ahmed None 0 Apr 21 17:10 foo1',
'-rw-r--r-- 1 ahmed None 0 Apr 21 17:10 foo2']

我想将上面的每个字符串转换成一个有九个成员(perm等)的类。

这里有一种方法可以满足您的要求,但正如其他人所指出的,不要用它来解析ls的输出。此外,它还假设输入字符串中只有8个空格区域用于分隔数据。如果任何数据子字符串也包含空格,则此代码将失败:

类文件属性(对象):
有序属性名称=[“权限”、“链接”、“所有者”,
“组”、“大小”、“月”、“日”、“时间”、“名称”]
定义初始化(self,lsString):
对于zip中的(attrib,s)(self.ORDERED_attrib_NAMES,lsString.split()):
setattr(self、attrib、s)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
ls_list=['-rw-r--r--1 ahmed None 0 Apr 21 17:10 bar1',
“-rw-r--r--1 ahmed None 0 Apr 21 17:10 bar2”,
“-rw-r--r--1 ahmed None 0 Apr 21 17:10 foo1”,
“-rw-r--r--1 ahmed None 0 Apr 21 17:10 foo2”]
文件=[]
对于ls_列表中的s:
files.append(FileAttribs)
#处理文件,例如。
对于文件中的f:
打印f.permissions、f.name

使用和获取所需信息。

您可以这样做:

import os

data = {}
for file in os.listdir('.'):
    data[file] = os.stat(file)

这将根据您的请求,以对象的形式提供当前目录中所有文件的信息。然后可以检查这些,您可以使用其他函数来计算您获得的用户ID的用户名,等等。

我以“ls-l”为例。我的问题与文件列表无关。谢谢你。@AhmedA:那么你一个问题也没问。当你有真正的问题时再回来。我用“ls-l”作为例子。我的问题与文件列表无关。不过谢谢你您现在要问的是如何将字符串转换为对象。你没有。字符串是一个对象。如何转换字符串中的信息取决于该信息是什么。没有通用的答案。请“块引用”粘贴的代码。这正是我要找的答案。非常感谢你。向你们致敬,因为你们正确地阅读了我的文章,并没有被我的“纯粹”例子所误导,以为我在试图对文件列表做些什么。太棒了。如果是这样的话,你能点击左边的复选标记吗?另外,根据你的例子,其他发帖的人试图帮助你避免看起来像是一个大错误的事情。你可能想做的是编辑你的帖子,一旦你发现你选择的一组字符串分散了人们对你想要的答案的注意力,就使用另一组字符串。