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.一些常用操作

f.close() 关闭文件,记住用open()打开文件后一定要记得关闭它,否则会占用系统的可打开文件句柄数。 f.fileno() 获得文件描述符,是一个数字 f.flush() 刷新输出缓存 f.isatty() 如果文件是一个交互终端,则返回True,否则返回False。 f.read([count]) 读出文件,如果有count,则读出count个字节。 f.readline() 读出一行信息。 f.readlines() 读出所有行,也就是读出整个文件的信息。 f.seek(offset[,where]) 把文件指针移动到相对于where的offset位置。where为0表示文件开始处,这是默认值 ;1表示当前位置;2表示文件结尾。 f.tell() 获得文件指针位置。 f.truncate([size]) 截取文件,使文件的大小为size。 f.write(string) 把string字符串写入文件。 f.writelines(list) 把list中的字符串一行一行地写入文件,是连续写入文件,没有换行。

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)

输出结果:

经验分享 程序员 微信小程序 职场和发展