![](/img/trans.png)
[英]How to read integers from text file and put them in a list in python?
[英]how to create a list of integers from a text file with multiple lines?
我需要編寫一個程序來讀取文本文件並返回文件中數字的中位數。 我想我對如何解決這個問題有一個很好的想法,但是在運行我的程序時我得到了一個 AttributeError 。
我的問題是:如何為文本文件中的數字制作一個列表? 共有 15 個數字,在文件中分為 5 行:
10 20 30
40 50 60
90 80 70
11 22 13
14 14 20
我想創建一個列表是:
num_list = fv.readlines()
num_list = num_list.split()
我認為這會讀取文件的所有行,然后我可以使用拆分 function 來創建數字列表。 現在我得到了一個 AttributeError: 'list' object has no attribute 'split',我不確定該怎么做。
如果沒有可靠的預期結果,我假設您想要一個列表中的所有數字。
您可以創建一個空列表,然后在循環文件時使用list.extend
。 不過,您需要將它們轉換為 int 。 map
非常適合:
num_list = []
with open('filename.txt') as fv:
for row in fv:
num_list.extend(map(int, row.split()))
你可以更有效地使用re
import re
with open('filename.txt') as fv:
num_list = list(map(int, re.findall('\d+', fv.read())))
結果(以上兩者)將是:
[10, 20, 30, 40, 50, 60, 90, 80, 70, 11, 22, 13, 14, 14, 20]
否則在按行/行的子列表中:
with open('filename.txt') as fv:
num_list = [list(map(int, row.split())) for row in fv]
結果:
[[10, 20, 30], [40, 50, 60], [90, 80, 70], [11, 22, 13], [14, 14, 20]]
我認為這就是你想要做的:
lines = fv.readlines()
num_list = []
for line in lines:
num_list.extend(line.split(' '))
num_list = [int(num.strip()) for num in num_list]
我的答案絕對是更長的版本,但是...
text = open('numbers.txt', 'r')
string = text.read()
string = string.replace('\n', ' ')
numbers = string.split(' ')
text.close()
#Print to see the result
print(numbers)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.