我有一堆数字像这样奇怪地排列在一个文本文档中
8 48 28 39 37 74
7 37 22 1 43 5
19 97 62 78 18 75
我尝试使用:
with open(r'C:UsersHPDesktoptest.txt', 'r') as file:
data = file.read()
tickets = data.split(' ')
但它会奇怪地加上数字本身,看起来像74n7
和。有没有可能把它们放在一个列表中,而不包括某些部分的奇怪文本?
我认为你看到的不是/n
,而是n
,换行符的转义字符。这是因为您要求Python将整个文件作为单个字符串读入,然后仅用空格分隔它。但是,在行之间(例如,在您的示例中在74和7之间),有一个换行符,而不是空格。
你可以使用data.split()
没有任何参数有它分割任何重复的空白字符(即空格和换行在其他事情)(见这里的str.split
文档):
with open(r'C:UsersHPDesktoptest.txt', 'r') as file:
tickets = file.read().split()
如果你想要整型,使用int
和列表推导式强制转换:
with open(r'C:UsersHPDesktoptest.txt', 'r') as file:
tickets = [int(value) for value in file.read().split()]
ans =[]
with open('abc.txt') as f:
lines = f.read().splitlines()
for line in lines:
t = [int(x) for x in line.split(' ')]
ans += t
print(ans)
这是一种方法。我们正在阅读文本,然后摆脱n
做splitlines
调用。之后,对于每一行,我们根据空格将其分割为段,然后将其转换为整数。