python处理txt文件的常用操作
1.打开文件
#方法1,这种方式使用后需要关闭文件
f = open("data.txt","r")
f.close()
#方法2,使用文件后自动关闭文件
with open(data.txt,"r") as f:
打开文件的模式主要有,r、w、a、r+、w+、a+
r:以读方式打开文件,可读取文件信息。 w:以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容 a:以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建 r+:以读写方式打开文件,可对文件进行读和写操作。 w+:消除文件内容,然后以读写方式打开文件。 a+:以读写方式打开文件,并把文件指针移到文件尾。
2.读取文件
f.read([count]) 读出文件,如果有count,则读出count个字节,如果不设count则读取整个文件。 f.readline() 读出一行信息。 f.readlines() 读出所有行,也就是读出整个文件的信息。
假设我们读取的文件如下:
readline()读取的数据为str类型:
read()读取数据为str类型:
readlines()读取数据为list类型,而且会把换行符读入:
3.如何把txt文件数据存入numpy数组
还是以上面文件做例子,首先通过read()将文件内容存为str
file_path = ("D:/FDTD/test.txt")
with open(file_path,r) as f:
file = f.read()
print(file)
print(type(file))
然后对str进行分割,然后转化为numpy数组:
a = file.split() print(a) a = np.array(a) a = a.reshape(3,5) print(a)
结果如下:
4.一些常用操作
5.批量读取txt文件
我们使用os模块中的listdir来列举所有的txt文件:
file_path = ("D:/FDTD/t")
files= os.listdir(file_path)
for file in files:
file_path2=file_path+ / + file
with open(file_path2,"r") as f:
假如文件中都是n行5列数据,我们需要对其进行合并:
file_path = ("D:/FDTD/t")
files= os.listdir(file_path)
time = 0
for file in files:
file_path2=file_path+ / + file
with open(file_path2,"r") as f:
t = f.read() #读取文件数据,此时为文件内容为字符串形式
t = t.split() #按空格或换行对字符串进行分割
t = np.array(t) #将list转化为numpy数组
t = t.reshape(-1,5)
print(
+file_path2+:)
print(t) #打印一个文件的数据
if time ==0:
a = t #如果是第一个文件,则令a=t
else:
a = np.vstack((t,a)) #如果不是第一个文件,则将t与前面文件数据进行拼接
time += 1
print(
合并后:)
print(a)
输出结果:
