Python-file 柔光的暖阳◎ 2023-05-31 07:47 1阅读 0赞 # 目录 # 1 eval 执行字符串表达式 2 json处理字典 3 csv保存数组 4 判断是否为文件夹 5 删除文件夹,或文件 6 多维数组,numpy,npy,npz格式 7 savetxt()和loadtxt() txt格式 # 1 eval() # 函数用来执行一个字符串表达式,并返回表达式的值 x = 7 print( eval( '3 * x' ) ) #等于21 print( eval('pow(2,2)') ) print( eval('2 + 2') ) # 2 json文件 # 总计: son.dumps()用于将字典形式的数据转化为字符串, json.loads()用于将字符串形式的数据转化为字典, json.load(open(fileName,"r")) 用于打开json文件,同时转化为字典# json.dump(data, file)用于将数据data转化为str保存到file中 import json data = { #定义字典 'name' : 'Connor', 'sex' : 'boy', 'age' : 29 } print("data\n",data,"\n") data1=json.dumps(data) #dumps将字典转化为字符串 print("json.dumps(data)\n",data1,"\n") data2=json.loads(data1)#loads将字符串转化为字典 print("json.loads(data1)\n",data2,"\n") print(type(data))#输出原始数据格式 print(type(data1))#输出经过json.dumps的数据格式 print(type(data2))#输出经过json.loads的数据格式 # 如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到json.dump(), # json.load()用于从json文件中读取数据. with open('data3.json','w',encoding='utf-8') as f: #如果没有data3.json就创建 f.write(data1) print() ''' r :只读 r+ : 读写 w : 新建(会对原有文件进行覆盖) a : 追加 b : 二进制文件 ''' # data4 = json.load(open("data3.json",'r')) # print(data4) with open('data3.json','r') as f3: data4 = json.load(f3) #用于读取json数据 print("data4的name\n",data4["name"]) print(f3) import os my_file = 'data3.json' # 文件路径 if os.path.exists(my_file): # 如果文件存在 #删除文件,可使用以下两种方法。 os.remove(my_file) # 则删除 print("删除了中间文件") 结果: data { 'name': 'Connor', 'sex': 'boy', 'age': 29} json.dumps(data) { "name": "Connor", "sex": "boy", "age": 29} json.loads(data1) { 'name': 'Connor', 'sex': 'boy', 'age': 29} <class 'dict'> <class 'str'> <class 'dict'> data4的name Connor <_io.TextIOWrapper name='data3.json' mode='r' encoding='cp936'> 删除了中间文件 # 3 csv保存数组 # import json#json文件格式 import csv#csv文件格式 path_csv = f"data.csv" data_csv = pd.read_csv(path_csv)#打开csv文件 print(data_csv['index'].values[0]) #打印index列的第0行 node=[] open_node=np.load(path_npy) #打开.npy文件 for i in range(10): node.append(open_node[i]) #向数列中添加数据 #将上面的list代码跟对应节点数写到df df = pd.DataFrame({ "node":node, #将数列转化为二维, "label":label, "transf":transf, "wgsize":wgsize}) df.to_csv(result_path) #csv保存 # 4判断输入的是文件夹还是文件 # path = sys.argv[1] if os.path.isfile(path): if os.path.exists(path): pass elif elif os.path.isdir(path): for filename in os.listdir(path): # 获取当前路径下的文件名 real_path = os.path.join(path, filename) if os.path.isfile(real_path): pass # 5 删除文件夹,或文件 # import os my_file = 'data3.json' # 文件路径 if os.path.exists(my_file): # 如果文件存在 #删除文件,可使用以下两种方法。 os.remove(my_file) # 则删除 print("删除了中间文件") # 6 多维数组,numpy # 处理npy,npz文件 import numpy as np a = np.arange(0,12) print(a) #构建数组,0-11 a.shape = 3,4 #数组分为三行四列 print(a) np.save("a.npy",a)#保存多维数组 c = np.load("a.npy") print(c) print("np.save,load---------------\n") a = np.array([ #二维数组 [1,2,3], [4,5,6], [7,8,9] ]) print(a) b = np.arange(0,1.0,0.1) #一维数组, print(b) c = np.sin(b) #对应的sin值 print(c) np.savez("result.npz",a,b,sin_array=c) #打包保存 with np.load("result.npz") as r: # r = np.load("result.npz") print("r[arr_0] \n",r["arr_0"] ) print("\nr[arr_1]\n",r["arr_1"] ) print("\nsin_array\n",r["sin_array"]) # 7 savetxt()和loadtxt() # import numpy as np a = np.arange(0,12,0.5).reshape(4,-1) print(a,"\n") np.savetxt("a.txt",a) f = np.loadtxt("a.txt") print(f) 输出: [[ 0. 0.5 1. 1.5 2. 2.5] [ 3. 3.5 4. 4.5 5. 5.5] [ 6. 6.5 7. 7.5 8. 8.5] [ 9. 9.5 10. 10.5 11. 11.5]] [[ 0. 0.5 1. 1.5 2. 2.5] [ 3. 3.5 4. 4.5 5. 5.5] [ 6. 6.5 7. 7.5 8. 8.5] [ 9. 9.5 10. 10.5 11. 11.5]] np.savetxt("a.txt",a,fmt="%d",delimiter=",") #格式转为int,用逗号分开 f = np.loadtxt("a.txt",delimiter=",") #读取的时候也需要添加delimiter print(f) 输出: [[ 0. 0. 1. 1. 2. 2.] [ 3. 3. 4. 4. 5. 5.] [ 6. 6. 7. 7. 8. 8.] [ 9. 9. 10. 10. 11. 11.]]
还没有评论,来说两句吧...