Python 如何将文件中的str作为整数获取?
我编写了一个代码,生成这样的文件Python 如何将文件中的str作为整数获取?,python,list,Python,List,我编写了一个代码,生成这样的文件 import sys file = open('output.txt','w') x = [1,2,3,4,5,6,7,8,9,10] f = [i**2 for i in x] g = [i**3/100 for i in x] strlist = list(map(str,f)) strlist1 = list(map(str,g)) file.write(','.join(strlist)) file.write('\n') file.write('.
import sys
file = open('output.txt','w')
x = [1,2,3,4,5,6,7,8,9,10]
f = [i**2 for i in x]
g = [i**3/100 for i in x]
strlist = list(map(str,f))
strlist1 = list(map(str,g))
file.write(','.join(strlist))
file.write('\n')
file.write('.'.join(strlist1))
[1,4,9,16,25,36,49,64,81,100]
[0.01.0.08.0.27.0.64.1.25.2.16.3.43.5.12.7.29.10.0]
结果是(文件内容)
我想把这个文件读成整数,这样列一个列表
import sys
file = open('output.txt','w')
x = [1,2,3,4,5,6,7,8,9,10]
f = [i**2 for i in x]
g = [i**3/100 for i in x]
strlist = list(map(str,f))
strlist1 = list(map(str,g))
file.write(','.join(strlist))
file.write('\n')
file.write('.'.join(strlist1))
[1,4,9,16,25,36,49,64,81,100]
[0.01.0.08.0.27.0.64.1.25.2.16.3.43.5.12.7.29.10.0]
我在尝试时遇到了这个错误
with open('output.txt','r') as a:
data = a.readlines()[0]
with open('output.txt','r') as a:
data1 = a.readlines()[1]
intlist = []
intlist.append(data)
['1,4,9,16,25,36,49,64,81,100\n']
['0.01.0.08.0.27.0.64.1.25.2.16.3.43.5.12.7.29.10.0']
如何修复它?您做了一个完整的过程,使它成为一个由
,
分隔的字符串,但没有做相反的操作
strlist = list(map(str,f))
strlist1 = list(map(str,g))
a = ','.join(strlist)
b = ','.join(strlist1)
strlist_as_int = [int(i) for i in a.split(',')]
strlist1_as_float = [float(i) for i in b.split(',')]
print(strlist_as_int)
print(strlist1_as_float)
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[0.01, 0.08, 0.27, 0.64, 1.25, 2.16, 3.43, 5.12, 7.29, 10.0]
为了使其成为一个完整的答案,有时(在实际情况下而不是合成情况下),行可以包含非整数或非浮点元素,在这种情况下,最佳做法是错误处理异常,如下所示:
def convert_int_with_try_except(num):
try:
converted_int = int(num)
return converted_int
except ValueError:
return num
def convert_float_with_try_except(num):
try:
converted_float = float(num)
return converted_float
except ValueError:
return num
strlist = list(map(str,f)) + ["not_an_int"]
strlist1 = list(map(str,g)) + ["not_a_float"]
a = ','.join(strlist)
b = ','.join(strlist1)
strlist_as_int = [convert_int_with_try_except(i) for i in a.split(',')]
strlist1_as_float = [convert_float_with_try_except(i) for i in b.split(',')]
print(strlist_as_int)
print(strlist1_as_float)
输出-注意列表中附加的“非整数”和“非浮点”:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 'not_an_int']
[0.01, 0.08, 0.27, 0.64, 1.25, 2.16, 3.43, 5.12, 7.29, 10.0, 'not_a_float']
您做了一个完整的过程,使其成为一个由,
分隔的字符串,但没有做相反的操作
strlist = list(map(str,f))
strlist1 = list(map(str,g))
a = ','.join(strlist)
b = ','.join(strlist1)
strlist_as_int = [int(i) for i in a.split(',')]
strlist1_as_float = [float(i) for i in b.split(',')]
print(strlist_as_int)
print(strlist1_as_float)
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[0.01, 0.08, 0.27, 0.64, 1.25, 2.16, 3.43, 5.12, 7.29, 10.0]
为了使其成为一个完整的答案,有时(在实际情况下而不是合成情况下),行可以包含非整数或非浮点元素,在这种情况下,最佳做法是错误处理异常,如下所示:
def convert_int_with_try_except(num):
try:
converted_int = int(num)
return converted_int
except ValueError:
return num
def convert_float_with_try_except(num):
try:
converted_float = float(num)
return converted_float
except ValueError:
return num
strlist = list(map(str,f)) + ["not_an_int"]
strlist1 = list(map(str,g)) + ["not_a_float"]
a = ','.join(strlist)
b = ','.join(strlist1)
strlist_as_int = [convert_int_with_try_except(i) for i in a.split(',')]
strlist1_as_float = [convert_float_with_try_except(i) for i in b.split(',')]
print(strlist_as_int)
print(strlist1_as_float)
输出-注意列表中附加的“非整数”和“非浮点”:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 'not_an_int']
[0.01, 0.08, 0.27, 0.64, 1.25, 2.16, 3.43, 5.12, 7.29, 10.0, 'not_a_float']
首先,在编写strlist1时,使用“,
”作为分隔符,以避免混淆点是否表示小数点
file.write(','.join(strlist))
file.write('\n')
file.write(','.join(strlist1)) # <- note the joining str
输出:
~ python script.py
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[0.01, 0.08, 0.27, 0.64, 1.25, 2.16, 3.43, 5.12, 7.29, 10.0]
首先,在编写strlist1时,使用“,
”作为分隔符,以避免混淆点是否表示小数点
file.write(','.join(strlist))
file.write('\n')
file.write(','.join(strlist1)) # <- note the joining str
输出:
~ python script.py
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[0.01, 0.08, 0.27, 0.64, 1.25, 2.16, 3.43, 5.12, 7.29, 10.0]
你的错误是什么?以帮助我们更快地解决它。如果字符串不是来自文件,您也会这样做。这是否回答了您的问题?请注意,这是以空格分隔的,但此处应用相同的逻辑。错误是什么?以帮助我们更快地解决它。如果字符串不是来自文件,您也会这样做。这是否回答了您的问题?请注意,这是以空格分隔的,但此处应用相同的逻辑为什么这映射(str,f)
?默认情况下,文本文件中的数据是stringYou完全正确,该部分是复制粘贴的,与问题中的一样。为什么这映射(str,f)
?默认情况下,文本文件中的数据是stringYou绝对正确,该部分是从问题中复制粘贴的。