我正在尝试写入和读取但是当我打印字符串中的每一行时,它每行只输出一个字符(我认为这是因为当我运行for循环时,它识别每一行"行";
下面是我的字符串division_text
的一个片段,如果我只是执行print(division_text)
:
Locked VersoToken Tokens- 170,833.00 VSO
LOCKED
Locked 05/02/2021 • Unlocks 10/01/2022
Owner: 0x308D2Ac1Bab7D0211717F969602fBC26D286555A
UNLOCK COUNTDOWN
352D – 9H – 10M – 29S
下面是被写入tmp文件的内容:
L
o
c
k
e
d
V
e
r
s
o
T
o
k
e
n
.
.
.
我的代码如下:
division_text = 'Locked VersoToken Tokens- 170,833.00 VSO
LOCKED
Locked 05/02/2021 • Unlocks 10/01/2022
Owner: 0x308D2Ac1Bab7D0211717F969602fBC26D286555A
UNLOCK COUNTDOWN
352D – 9H – 10M – 29S
VIEW TX'
with tempfile.NamedTemporaryFile(mode='w', delete=False) as tmp:
print(tmp.name)
tmp.write('{}n'.format(division_text))
# reopen the file for reading
with open(tmp.name) as tmp:
new_division_text = tmp.read()
for line in new_division_text:
print(line)
os.remove(tmp.name)
print(line)
的输出是我上面写的垂直的字符序列。
'{}n'.format(division_text)
似乎对任何事情都没有帮助。
我不能将字符串修改为行列表,因为这样我就不能将列表写入文件,就好像它是我读取的。txt文件一样。或者我可以吗?
Python/我的计算机如何知道它是一个文本文件?
read()
将文件的整个内容读入单个数组,这就是为什么当您遍历它时,它将每个字符打印在单独的行上。
你需要这样写:
with open(tmp.name) as tmp:
new_division_text = tmp.readlines()
for line in new_division_text:
print(line)
注意readlines()