You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Pathlib.Path.touch()创建的文件名末尾带问号是什么原因?

问题根因

file.readlines()方法读取文件内容时,会保留每一行末尾的换行控制符:如果是Windows系统下的文本文件,每行末尾是\r\n两个控制符;Unix/macOS下是\n单个控制符。这些控制符属于不可见字符,被写入文件名后,系统无法正常渲染就会用?替代显示。
你直接手动定义列表生成文件时没有问题,是因为你手写的字符串只有文件名本身,没有携带额外的换行控制符。

修复方案

读取每行内容后,先去除末尾的换行符再创建文件即可,推荐两种写法:

  1. 通用写法,去除首尾所有空白字符(包括换行符、空格、制表符),适合文件名本身首尾没有空格的场景:
from pathlib import Path

with open("mp3.txt", "r") as file:
    for line in file.readlines():
        Path(line.strip()).touch()
  1. 精准写法,仅删除末尾的换行符,避免误删文件名本身首尾带的空格:
from pathlib import Path

with open("mp3.txt", "r") as file:
    for line in file.readlines():
        # 仅移除末尾的换行符
        filename = line.rstrip('\n').rstrip('\r')
        Path(filename).touch()

内容的提问来源于stack exchange,提问作者Kavish Gour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:42:00