创建sample.txt:
FE 0A 00 03 03 FF 03 1A 01 FF 4A 99 69
程序如下:
with open('sample.txt','r') as f:
line = f.readline().strip() # 如果不加strip,会出现空行
linestr = line.split(" ")
print(linestr)
for i in range(0, len(linestr)):
print(linestr[i], end=" ")
运行结果:
修改sample.txt:
FE 0A 00 03 03 FF 03 1A 01 FF 4A 99 69
FE 0A 00 03 03 FF 03 1A 01 FF 4A 99 69
FE 0A 00 03 03 FF 03 1A 01 FF 4A 99 69
FE 0A 00 03 03 FF 03 1A 01 FF 4A 99 69
这里文件有多行的话,就加用一个while循环:
with open('sample.txt','r') as f:
line = f.readline().strip()
while line:
linestr = line.split(" ")
print(linestr)
line = f.readline().strip()
运行结果:
如果想要把每一行当作一个list项的话,就采用read()函数:
with open('sample.txt','r') as f:
line = f.read().strip()
linestr = line.split("\n") # 以换行符分隔
print(linestr)
for i in range(0, len(linestr)):
print(linestr[i])
运行结果:
这样每一项就是一整行
其实我也很想使用readlines()函数,它会自动把所有内容都放进一个list列表中,但莫名会出现很多空行:
with open('sample.txt','r') as f:
line = f.readlines()
while '\n' in line: # 删除后面多余的'\n'项
line.remove('\n')
print(line, end="")
运行结果:
如果想要把全部行变为一个大列表,因为要分隔空格和换行符这两个分隔符,我们需要用到re模块:
import re
with open('sample.txt','r') as f:
line = f.read().strip()
result = re.split(r"[\s\n]", line)
print(result)
运行结果:
难度再加大一点,如果给我们的sample.txt是这样的,怎样把它一个字节一个字节放进list呢?
FE0A000303FF031A01FF4A9969
这样就要先定义一个列表,之后一项一项append进去:
alist = []
with open('sample.txt', 'r') as f:
line = f.read().strip()
for i in range(0, len(line), 2):
alist.append(line[i:i+2])
print (' '.join(alist))
print(alist)
运行结果:
参考博客: