1

我正在使用 python(x,y) 并且在使用之前在 linux 中运行良好的 numpy loadtxt 函数时遇到了问题。代码如下所示:

 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 不允许您选择文本并像人类一样复制。任何帮助表示赞赏。

4

1 回答 1

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 该字符串是原始,应该忽略转义。事实上,它会自动插入双反斜杠:

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'

这是退格字符。

于 2013-11-04T18:27:43.323 回答