我正在使用python(x,y),我在使用numpy loadtxt函数时遇到问题,以前它在linux中运行良好。代码如下所示:
from numpy import loadtxt
values=loadtxt("C:\Users\My_username\path\to\txt\file",float)
我检查过路径是否正确(不要认为我需要使用任何转义字符),文件很好。它最初是一个linux文件,我转换为Windows文件,但它看起来很好。不知道为什么错误插入双反斜杠和“x08”
IOError: [Errno 22] invalid mode ('U') or filename:
'C:\\Users\\Michael\\SkyDrive\\Documents\\university\third_year\\uni_work\\labs\x08andgap_spectro\x08andgap_spectro_GaAs_1nm\x08andgap_GaAs_v_vs_lambda_1nm.txt'
不得不从cmd复制该错误,因为ipython不允许您选择文本并像人一样复制。任何帮助表示赞赏。
答案 0 :(得分:0)
好吧我常用的技巧都行不通。尝试使用os.path
和正斜杠
import os
import numpy as np
fname = os.path.normpath('C:/Users/Michael/SkyDrive/Documents/university/third_year/uni_work/labs/bandgap_spectro/bandgap_spectro_GaAs_1nm/bandgap_GaAs_v_vs_lambda_1nm.txt')
np.loadtxt(fname, float)
试试这个:
loadtxt(ur'C:\Users\Michael\SkyDrive\Documents\university\third_year\uni_work\labs\bandgap_spectro\bandgap_spectro_GaAs_1nm\bandgap_GaAs_v_vs_lambda_1nm.txt', float)
文件名前面有ur
。
r
前缀将告诉python该字符串是 raw ,并且应该忽略转义符。实际上,它会自动插入双反斜杠:
In [132]: r'C:\Users\Michael\SkyDrive\Documents\university\third_year\uni_work\labs\bandgap_spectro\bandgap_spectro_GaAs_1nm\bandgap_GaAs_v_vs_lambda_1nm.txt'
Out[132]: 'C:\\Users\\Michael\\SkyDrive\\Documents\\university\\third_year\\uni_work\\labs\\bandgap_spectro\\bandgap_spectro_GaAs_1nm\\bandgap_GaAs_v_vs_lambda_1nm.txt'
u
告诉它使用unicode。
x08
来自\b
:
In [133]: '\b'
Out[133]: '\x08'
这是退格符。