Python 在临时文件中每行写一个字符而不是整个字符串
Python writing one character per line instead of entire string on temporary file
我正在尝试写入和读取一个字符串到一个临时文件中,但是当我打印字符串中的每一行时,它每行只输出一个字符(我假设它是因为当我 运行 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/my 计算机如何知道它是一个文本文件?
read()
将文件的全部内容读取到一个数组中,这就是为什么当您遍历它时它会在单独的行上打印每个字符。
你需要这样的东西:
with open(tmp.name) as tmp:
new_division_text = tmp.readlines()
for line in new_division_text:
print(line)
注意 readlines()
我正在尝试写入和读取一个字符串到一个临时文件中,但是当我打印字符串中的每一行时,它每行只输出一个字符(我假设它是因为当我 运行 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/my 计算机如何知道它是一个文本文件?
read()
将文件的全部内容读取到一个数组中,这就是为什么当您遍历它时它会在单独的行上打印每个字符。
你需要这样的东西:
with open(tmp.name) as tmp:
new_division_text = tmp.readlines()
for line in new_division_text:
print(line)
注意 readlines()