我正在尝试用python写一个程序,它将采用windows文件路径(使用反斜杠而不是正斜杠)并将文件转换为另一种文件类型,我认为input()
和windows使用反斜杠的某种组合是导致错误的原因。
例如,用户可以输入类似于“C:\Users\user\Downloads\file.tdms”的内容
我想告诉用户从他们的文件资源管理器中复制文件路径并粘贴到程序中。我不能改变用户输入的内容,它必须是上面的形式。
下面是我的代码:
'
from nptdms import TdmsFile
from pathlib import Path, PurePosixPath
path = Path(input('enter file path: '))
path1 = PurePosixPath(path)
print(path1)
with open(path1, mode='r') as f:
tdms_file = TdmsFile.read(f)
tdms_file.to_csv(path + '.csv')
'
下面是我得到的错误:
'
(base) H:\Private\ahirani\python TDMS to CSV>testing.py
enter file path: "C:/Users/user/Downloads/file.tdms"
"C:/Users/user/Downloads/file.tdms"
Traceback (most recent call last):
File "H:\Private\ahirani\python TDMS to CSV\testing.py", line 11, in <module>
with open(path, mode='r') as f:
OSError: [Errno 22] Invalid argument: '"C:/Users/user/Downloads/file.tdms"'
'
任何帮助都是非常感谢!
1条答案
按热度按时间lhcgjxsq1#
看起来您使用的是
PurePosixPath
,尽管您的问题是专门针对Windows的。我会尝试使用WindowsPath
和官方文档中列出的Path
对象上的特定open方法。此外,看起来您的输入周围有一组额外的双引号我没有立即访问Windows机器来测试这个,但它应该工作。测试你的问题是什么的好方法是搜索你的错误,并尝试将其硬编码为调试步骤。例如,看看这个SO thread