[英]Trying to read a txt file with numbers into a list and then sort using Python
我有一個單行的txt文件file1.txt,它具有一系列的10個數字。
10,45,69,85,21,32,11,71,20,30
我想從txt文件中獲取這些數字,然后將它們添加到列表中,然后按升序對數字進行排序。
我努力了
myfile1 = open('file1.txt', 'r').readlines()
但這似乎給了我一個長度為1的列表,該列表顯然無法排序。
In [101]: myfile1
Out[101]: ['10,45,69,85,21,32,11,71,20,30']
我猜我閱讀文本文件的方式有問題,但是我似乎找不到合適的方法。
有點模糊以做1線,但基本上是:
with open('file1.txt', 'r') as f:
data = sorted(map(int, f.readline().split(',')))
這是做什么的:
f.readline()
','
字符上分割該行: .split(',')
string
list
map(int, list)
到int
值: map(int, list)
int
的list
: sorted(list)
.readlines()會執行以下操作:逐行讀取文件。 在您的示例中,只有一行,因此長度為1。
在這一行中,您需要使用逗號分隔:
with open(file1.txt,'r') as myfile:
for line in myfile:
print sorted(map(int, line.split(',')))
或者,如果您有多行包含大量數字:
data = []
with open(file1.txt,'r') as myfile:
for line in myfile:
data.extend(map(int, line.split(',')))
print sorted(data)
在這里,我使用with with關鍵字來打開文件,可以逐行對其進行迭代。 然后,在每一行上使用字符串的split方法,該方法將返回字符串列表。 然后,我通過將int類型轉換函數應用於列表中的每個項目,使用map將這些字符串轉換為整數。 然后可以對該列表進行排序。 確保查看Python文檔上的字符串方法頁面 。
沒有輸入文件的測試:
numbers = "10,45,69,85,21,7,32,11,71,20,30"
data = []
data.extend(map(int, numbers.split(',')))
print sorted(data)
版畫
[7, 10, 11, 20, 21, 30, 32, 45, 69, 71, 85]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.