访问保存在.txt文件中的文件路径。(Python)
我有一个文本文件,其中包含要打开的文件的文件路径 文本文件如下所示:访问保存在.txt文件中的文件路径。(Python),python,numpy,text,filepath,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'
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')
它生成一个路径[1],如下所示:
\\temp\u 109.17621
而不是整个文件路径
我是否使用了错误的
dtype
,或者在loadtxt
中不可能这样做?如果您将数据类型更改为np。str\uu
它将工作:
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个字符
如果查看,您将看到每个数据类型都做了什么以及如何使用它们
如果您只需要所有文件路径,还可以使用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:
.....
您使用S16作为类型,并得到
\\temp\u 109.17621
,结果(\\
被转义\
),并返回长度为16的字符串
尝试使用np.genfromtxt
和dtype=None
或适当调整dtype='S45'
(在您的情况下)
受loadtxt启发,按字面意思加载文件包含的内容。它不理解该列是文件路径。@8765674全部正确,您使用S16作为类型,返回的字符串长度为16(\\是一个字符)。根据,请尝试使用
np.genfromtxt
和dtype=None
或适当调整字符串长度,因为从文件加载的路径不是大小写,根据\\temp\u 109.17621…
斜杠很好
import csv
with open("NonLorentzianData.txt") as f:
reader = csv.reader(f,delimiter=" ")
for row in reader:
with open(row[-1]) as f:
.....