提问人:clodia 提问时间:10/28/2023 最后编辑:clodia 更新时间:10/28/2023 访问量:73
读取列表中的文件内容
Read file content in list
问:
我有这样的文件:
1
2
3
4
O
5
6
7
8
如何读取列表中的数字作为输出,如下所示:[12345678]
a=[]
with open(filename, 'r') as input:
for line in input:
if 'ONE' in line:
break
a.append(line)
print(' '.join(a))
答:
1赞
Barmar
10/28/2023
#1
读取文件时需要删除换行符。您可以使用 来执行此操作。strip()
当该行为 时,不要跳出循环,这将阻止读取文件的其余部分。ONE
的测试不适用于 或其他非数字行。用。ONE
TWO
.isnumeric()
当您 时,您应该使用空字符串作为分隔符,而不是空格。.join()
最后,你需要调用将连接的字符串转换为整数,并将其放入其中以获得列表。int()
[]
with open(filename, 'r') as f:
a = [line.strip() for line in f if line.strip().isnumeric()]
print([int(''.join(a))])
不要用作变量名称,它会用该名称替换内置函数。input
评论
0赞
clodia
10/28/2023
我可以在不使用 strip() 的情况下读取文件时删除换行符吗?
0赞
Barmar
10/28/2023
你可以使用f.read().splitlines()
0赞
clodia
10/28/2023
感谢您的代码。你能检查一下我的更新代码吗?为什么我不能打印任何东西?
0赞
Barmar
10/28/2023
x.isnumeric()
永远不会是真的,因为以换行符结尾。您需要使用x
x.strip().isnumeric()
0赞
Barmar
10/28/2023
为什么附加新代码而不是 .并且意味着它将跳过 的许多元素。这与原始代码尝试执行的操作完全不同,并且不会产生所需的结果。i
x[i]
i += int(x[i])
x
评论