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()郑州妇科医院哪家好 http://m.120ask.com/zhenshi/ 读出一行信息。 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('\n' file_path2 ':') print(t) #打印一个文件的数据 if time ==0: a = t #如果是第一个文件,则令a=t else: a = np.vstack((t,a)) #如果不是第一个文件,则将t与前面文件数据进行拼接 time = 1 print('\n合并后:') print(a) 得出结果 |
|