我正在读取一个包含一些数据的文件。我希望将数据分为几个类别,并将其写入自己的文件(例如整数,如电话号码、小数、单个单词和单独的句子(。
def data_reading():
data = []
integers = []
with open("my_lines.txt") as file:
for row in file:
row = row.strip().replace("n", "")
data.extend(row.split(","))
for values in data:
if values.isnumeric():
print(values + " - integer")
integers.extend(row.split(","))
elif values.isalpha():
print(values + " - alphabetical strings")
elif values.isalnum():
print(values + " - alphanumeric")
else:
print(values + " - float")
return integers
somethin = data_reading()
print(somethin)
如果我要输入123、abc、Address unknown、20.12.85等行,我的目标是获得4个列表来存储值,并使用这些列表在具有单独写入功能的4个文件中写入。然而,现在我只存储最后一个浮点值的次数与我正在读取的数据文件中的行数一样多(我试图用isnumerical((获取数字(。为什么?我好像错过了什么。
您有两个单独的for循环,当您将整数放入列表中时,您已经在文件中的所有行上迭代,因此row
指向最后一行,即"20.12.85";。
请改用integers.append(values)
(如果要存储实际整数,请使用integers.append(int(values))
(。
像这样:
def data_reading():
data = []
integers = []
with open("my_lines.txt") as file:
for row in file:
row = row.strip().replace("n", "")
data.extend(row.split(","))
for value in data:
if value.isnumeric():
print(value + " - integer")
integers.append(value)
elif value.isalpha():
print(value + " - alphabetical strings")
elif value.isalnum():
print(value + " - alphanumeric")
else:
print(value + " - float")
return integers
somethin = data_reading()
print(somethin)