【发布时间】:2021-11-08 12:42:49
【问题描述】:
我有一个名为“mp3.txt”的文件,内容如下:
1.mp3
2.mp3
3.mp3
4.mp3
5.mp3
读取“mp3.txt”的Python代码,并为每一行创建一个新文件:
from pathlib import Path
with open("mp3.txt", "r") as file:
for line in file.readlines():
Path(line).touch()
结果:
1.mp3? 3.mp3? 5.mp3?
2.mp3? 4.mp3?
我只有在读取文件时才会遇到这种情况。如果我从 list() 而不是像这样的文件做同样的事情:
from pathlib import Path
l = ["1.mp3", "2.mp3", "3.mp3", "4.mp3", "5.mp3"]
for i in l:
Path(i).touch()
输出看起来不错:
1.mp3 2.mp3 3.mp3 4.mp3 5.mp3
是的,我确实尝试将文件的内容附加到 list() 中:
from pathlib import Path
l = []
with open("mp3.txt", "r") as file:
for line in file.readlines():
l.append(line)
for i in l:
Path(i).touch()
和“?”仍然被附加在文件名中。文档没有关于这种行为的任何内容。
【问题讨论】:
-
它是您在文件
mp3.txt中的“新行”。看我的回答。
标签: python file touch filenames pathlib