访问保存在.txt文件中的文件路径。 (蟒蛇)

时间:2015-05-06 16:21:38

标签: python numpy text filepath

我有一个文本文件,其中包含我想要打开的文件的文件路径。

文本文件如下所示:

28.2 -1.0 46 14 10 .\temp_109.17621\voltage_28.200\power_-1.txt
28.2 -2.0 46 16 10 .\temp_109.17621\voltage_28.200\power_-2.txt

...

我想在此文件路径中打开文件。

第一步是从文本文件中加载每个文件路径。

我试过这个:

path = np.loadtxt('NonLorentzianData.txt',usecols=[5],dtype='S16')

生成path[1],如下所示:

.\\temp_109.17621 ...

而不是整个文件路径。

我使用的是错误的dtype,还是使用loadtxt无效?

2 个答案:

答案 0 :(得分:1)

如果您将数据类型更改为np.str_,它将起作用:

path = np.loadtxt('NonLorentzianData.txt',usecols=[5],dtype=np.str_)

print(path[1])
.\temp_109.17621\voltage_28.200\power_-2.txt

或者使用dtype=("S44")也可以使用两条路径中最长的路径。 您正在指定 16个字符串,因此您只能获得前16个字符

In [17]: s = ".\\temp_109.17621"

In [18]: len(s)
Out[18]: 16

# 43 character string
In [26]: path = np.loadtxt('words.txt',usecols=[5],dtype=("S43"))    
In [27]: path[1]
Out[27]: '.\\temp_109.17621\\voltage_28.200\\power_-2.tx'    
In [28]: len(path[1])
Out[28]: 43    
# 38 character string
In [29]: path = np.loadtxt('words.txt',usecols=[5],dtype=("S38"))    
In [30]: path[1]
Out[30]: '.\\temp_109.17621\\voltage_28.200\\power_'    
In [31]: len(path[1])
Out[31]: 38
In [32]: path = np.loadtxt('words.txt',usecols=[5],dtype=np.str_)
In [33]: path[1]
Out[33]: '.\\temp_109.17621\\voltage_28.200\\power_-2.txt'

如果查看docs,您会看到每个dtype的作用以及如何使用它们。

如果您只想要所有文件路径,也可以使用csv.reader

import csv
with open("NonLorentzianData.txt") as f:
    reader = csv.reader(f,delimiter=" ")
    for row in reader:
        with open(row[-1]) as f:
            .....

答案 1 :(得分:1)

您使用S16作为类型并获得@IBAction func clickStartButton() { self.secondsRing.setBackgroundImageNamed("yellow-outer") self.watchTimer.setDate(NSDate()) self.secondsRing.startAnimatingWithImagesInRange( NSRange(location: 0, length: 60), duration: 60, repeatCount: 0) self.watchTimer.start() } 作为结果(.\\temp_109.17621被转义\\)并返回长度为16的字符串。

尝试使用\np.genfromtxt或正确调整dtype=None(在您的情况下)

post启发