我在raw_data.txt中有以下数据
id=001;name=Johan Strauss;address=58 Jalan Jelutong, 11600 Pulau Pinang, Malaysia;gender=male
id=002;name=Jennifer Teng;address=Q-2-4,Desa Indah, Lorong Minyak, 13000 Kedah, Malaysia;gender=female我运行了以下代码:
f = open('raw_data.txt', 'r')
for x in f:
x = x.replace("id","Student",)
x = x.replace("name","Name")
x = x.replace("address","Home Number")
x = x.replace("gender","Gender")
x = x.replace(";","\n")
print (x)
g = open('formatted.txt','a')
g.write(x)这是我在formatted.txt中得到的输出
Student=002
Name=Jennifer Teng
Home Number=Q-2-4,Desa Indah, Lorong Minyak, 13000 Kedah, Malaysia
Gender=female我丢失了学生001数据。我的代码出了什么问题?
发布于 2021-11-10 05:18:55
记得关闭你打开的文件。您的代码存在一个缩进问题,即for循环逐行迭代。纠正后的代码可以按如下方式进行纠正:
f = open('raw_data.txt', 'r')
y=''
for x in f:
x = x.replace("id","Student")
x = x.replace("name","Name")
x = x.replace("address","Home Number")
x = x.replace("gender","Gender")
x = x.replace(";","\n")
y=y+x #Used to store the newly formated text of each line
print(y)
f.close()
g = open('formatted.txt','a')
g.write(y) #Write the updated information to the file
g.close()发布于 2021-11-10 04:30:20
问题:您在最后只向文件写入一次,但之前在for循环中处理了更多的学生数据。X变量仅存储最终值,并且仅写入学生002数据。
with open('data.txt', 'r') as f: # reading all data line by line from the raw_data.txt
data = f.readlines()
with open('formatted.txt', 'w') as f: # writing data to new file student by student
for student in data:
student = student.strip().replace("id","Student").replace("name","Name").replace("address","Home Number").replace("gender","Gender").replace(";","\n")
f.write(student)
print(student)https://stackoverflow.com/questions/69907793
复制相似问题