Python 如何创建一个以文件名为键,以行(文件中)的第一个字符为值的字典?
所以我有一些包含数据/行的txt文件。例如,文件Q127.txt将包含:Python 如何创建一个以文件名为键,以行(文件中)的第一个字符为值的字典?,python,file,dictionary,Python,File,Dictionary,所以我有一些包含数据/行的txt文件。例如,文件Q127.txt将包含: 0 45 67 78 91 0 56 78 89 01 5 56 43 56 67 我只想读取文件中每行的第一个字符。我通过以下方式实现了这一目标: file = open("Q127.txt","r") for line in file.readlines(): print(line[0]) # just printing
0 45 67 78 91
0 56 78 89 01
5 56 43 56 67
我只想读取文件中每行的第一个字符。我通过以下方式实现了这一目标:
file = open("Q127.txt","r")
for line in file.readlines():
print(line[0]) # just printing to show what i get
output: 0
0
5
现在,由于我有许多这样的.txt文件,我想从一个文件夹中读取它们,并将文件名(作为键)和行[0]值(作为值)存储在一个名为classes的字典中。所以课程应该是这样的
classes={"Q127.txt": [0,0,5], "Q128.txt": [5,8,0,1,1,1,1],..........}
我如何做到这一点?
编辑:这是我尝试过的,但我仍然没有得到想要的输出
import os
file = open("Q127.txt","r")
classes={}
l=[]
for line in file.readlines():
l.append(line[0])
classes[file]=[l]
classes # to see the output
output:
{<_io.TextIOWrapper
name='Q127.txt' mode='r'
encoding='cp1252'>: [['0','0']]}
导入操作系统
文件=打开(“Q127.txt”,“r”)
类={}
l=[]
对于文件.readlines()中的行:
l、 追加(第[0]行)
类[文件]=[l]
类#以查看输出
输出:
{: [['0','0']]}
维护此词典有两种方法
您可以将文件存储在变量中
file_list= ['test.txt'] # you can use the os.listdir() to obtain the list
of files and location
classes= {}
for i in file_list:
content= open(i).readline()# reads only first line
classes[i]= content.split(' ')[0]
第一个字符总是数字吗?然后,您可以使用
int(第[0]行]
将第一个字符计算为数字,还可以访问文件。name
成员作为该行的字典键:
import os
file = open("Q127.txt","r")
classes={}
l=[]
for line in file.readlines():
l.append(int(line[0]))
# move the classes dictionary assignment out of the for loop, l already a list, no need to put brackets around it
classes[file.name]=l
classes # to see the output
您尝试实现上述行为的目的是什么?在实现您尝试的解决方案时您遇到了什么问题?您好,我已经编辑了我尝试的问题。请将类[file]=[l]移动到for循环之外。因此,您不能将文件用作键,它具有fileobject,而不仅仅是文件名。将其用作classess_dict[file.name]=值您要将文件名(即字符串)设置为字典键。但是在
classes[file]=[l]
行中,您将相应的文件对象设置为键。将其更改为classes[file.name]=[l]
,并将这一行移到循环外部,因为它在循环内部很简单。我只想读取文件中所有行的第一个字符。不仅仅是第一行,我尝试了这一点,但我得到的输出与我在问题检查中对您的问题的评论相同,您使用的是文件对象作为键。你需要改变这个。