Python如何正确接收Windows原生文件路径并处理文件转换?
解决Windows原生路径转TDMS到CSV的问题
问题根源
你的报错主要来自三个核心问题:
- 输入路径带了多余的双引号,导致系统识别为无效路径
- 没必要用
PurePosixPath转换Windows路径,Path本身就能完美处理Windows原生反斜杠路径 - 打开TDMS文件用了文本模式
'r',但TDMS是二进制格式,必须用'rb'模式读取
修正步骤
- 清理输入路径的引号:用户从资源管理器复制的路径可能带双引号,用
strip('"')去掉首尾的引号即可 - 直接用
Path处理原生路径:Path类原生支持Windows反斜杠格式,不需要额外转成Posix路径 - 二进制模式读取TDMS:
TdmsFile.read()要求传入二进制文件对象,所以打开文件时用'rb'模式 - 正确生成CSV输出路径:用
Path对象的with_suffix方法直接替换文件后缀,避免字符串拼接出错
修正后的代码
from nptdms import TdmsFile from pathlib import Path # 接收输入并清理首尾引号 input_str = input('enter file path: ').strip('"') tdms_path = Path(input_str) # 二进制模式读取TDMS文件 with open(tdms_path, mode='rb') as f: tdms_file = TdmsFile.read(f) # 直接替换后缀生成CSV路径 tdms_file.to_csv(tdms_path.with_suffix('.csv'))
使用说明
现在用户可以直接复制粘贴Windows原生路径(比如C:\Users\user\Downloads\file.tdms),不管路径带不带双引号,代码都能正确处理,不会再出现路径无效的错误。
内容的提问来源于stack exchange,提问作者aly h
相关产品推荐
相关产品推荐

