![](/img/trans.png)
[英]How can i read a list of arrays in python from a file and put it in a list of array?
[英]How do I read from a file and put it into a list as an integer? Python
这就是我所拥有的
file = open("numberlist.txt")
list = []
for line in file:
line = line.strip()
list.append(line)
我会在文件中的 for 行中将每一行转换为整数:我该怎么做?
可选:如果我在numberlist.txt
有非数字字符? 我该如何测试并且必须编程告诉我文件不正确?
如果每一行都有一位数字,则可以直接使用文件对象和map
函数:
with open("numberlist.txt") as f:
num_list=map(int,f)
注意:永远不要使用 python 内置名称作为变量名,也不要使用with
语句打开文件。
with 语句用于用上下文管理器定义的方法包装块的执行。
阅读有关with
语句及其使用优势的更多信息。 https://docs.python.org/2/reference/compound_stmts.html
但是,如果根据文件的外观,文件中可能有非数字字符,则可以使用一些方法,例如可以使用try-except
语句完成的exception-handling
。
因此,如果我们假设您在每一行中有一个单词(包含数字或字符),您可以这样做
num_list=[]
with open("numberlist.txt") as f:
for line in f:
try :
num_list.append(int(line))
except:
continue #or other stuffs
请注意,这可能有很多场景,根据您的代码,您可以使用各种方法!
如果愿意,您可以使用int
构造函数或 type-caster 将字符串转换为整数。 如果转换不可能,它会抛出一个ValueError
。
int_value = int(strvalue)
在python中对列表中的所有元素执行相同操作的一个好方法是使用map
函数。 在解释器中做一个help(map)
看看它是如何工作的
# assuming that the file exists
file = open("numberlist.txt")
my_list = []
for line in file:
line = line.strip()
list.append(line)
try:
list_of_ints = map(int, my_list)
except ValueError:
print("invalid file")
要检查列表是否正确,请将操作放在 try-except 块中。
您可以使用with
语句在几行中完成所有这些操作
with open("numbers.txt") as file_object:
try:
list_of_ints = map(int, (l.strip() for l in file_object))
except ValueError:
print("invalid file")
在这里,我使用 file_object 作为可迭代对象(它给出了文件中的所有行)。 并使用生成器语法创建另一个可应用 map 函数的可迭代对象
file = open("numberlist.txt",'r')
l = []
for line in file:
line = line.split()
try:
l.append(int(line[0]))
except:
continue
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.