1. 程式人生 > >python3 文件讀入寫出小結

python3 文件讀入寫出小結

ade spl 時長 main nbsp fetch def odi 控制


Python3 各種文件格式的轉換:













1
import json 2 import pymysql 3 from datetime import datetime 4 from xlrd import xldate_as_tuple 5 import xlrd 6 import xlwt 7 8 9 # 讀CSV 10 def readCSV(): 11 ls = [] 12 with open(../ls/textfile/price2016.csv, r, encoding=utf-8) as in_csv:
13 for line in in_csv: 14 line = line.replace(\n, ‘‘) 15 ls.append(line.split(,)) 16 return ls 17 18 19 # 寫csv 20 def writeCSV(ls): 21 out_csv = open(../ls/textfile/out_csv, w, encoding=utf-8) 22 for i in range(len(ls)): 23 out_csv.write(
,.join(ls[i]) + \n) 24 print("寫入成功!") 25 26 27 # 讀json 28 29 def readJson(): 30 in_json = open(../ls/textfile/price2016.json, r) 31 ls = json.load(in_json) 32 # print(ls) 33 data = list(ls[0].keys()) 34 for item in ls: 35 data.append(list(item.values()))
36 in_json.close() 37 for item in data: 38 print( .join(item) + \n) 39 print(讀入json完成) 40 41 42 # 寫json 43 44 def writeJson(ls): 45 out_json = open(../ls/textfile/out_price2016.json, w) 46 for i in range(1, len(ls)): 47 ls[i] = dict(zip(ls[0], ls[i])) 48 json.dump(ls[1:], out_json, sort_keys=True, indent=4, ensure_ascii=False) 49 out_json.close() 50 51 52 # 讀TEXT 53 def readText(): 54 in_text = open(../ls/textfile/test_text.txt, r) 55 for line in in_text.readlines(): 56 print(line) 57 print(input OK!) 58 59 60 # 寫TEXT 61 def writeText(ls): 62 out_text = open(../ls/textfile/out_text.txt, w) 63 for i in range(len(ls)): 64 out_text.write( .join(ls[i]) + \n) 65 66 67 # 讀sql文件 68 def readsql(): 69 cursor, db = login() 70 sql = "select * from course" 71 doit(sql, cursor, db) 72 data = cursor.fetchall() 73 for d in data: 74 print(編號:, d[0], end=\t) 75 print(名稱:, d[1], end=\t) 76 print(地點:, d[2], end=\t) 77 print(時長:, d[3], end=\t) 78 print(考試時間:, d[4], end=\t) 79 print("\n") 80 db.close() 81 82 83 # 寫sql文件 84 def writesql(file): 85 cursor, db = login() 86 fw = open(../ls/textfile/ + file, r, encoding="utf-8") 87 for line in fw: 88 line = line.replace( , ,) 89 ans = line.split(,) 90 print(ans[0], ans[1], ans[2], ans[3], ans[4]) 91 sql = "insert into course(`number`,`name`,place,duration,examTime) values (‘{}‘,‘{}‘,‘{}‘,‘{}‘,‘{}‘)".format(ans[0], 92 ans[1], 93 ans[2], 94 ans[3], 95 ans[4]) 96 doit(sql, cursor, db) 97 98 99 100 # 讀excel文件 101 def readexcel(): 102 cur, db = login() 103 data = xlrd.open_workbook("../ls/textfile/test.xlsx", "r") 104 sheet = data.sheet_by_index(0) 105 for i in range(1, int(sheet.nrows)): 106 ans = sheet.row_values(i) 107 print(ans[0], ans[1], ans[2], ans[3], ans[4]) 108 sql = "insert into course(`number`,`name`,place,duration,examTime) values (‘{}‘,‘{}‘,‘{}‘,‘{}‘,‘{}‘)".format(ans[0], 109 ans[1], 110 ans[2], 111 ans[3], 112 ans[4]) 113 doit(sql, cur, db) 114 115 116 def writeexcel(ls): 117 cur, db = login() 118 sql = select * from course 119 cur.execute(sql) 120 fileds = [filed[0] for filed in cur.description] #列表生成式,所有字段 121 all_data = cur.fetchall() #所有數據 122 book = xlwt.Workbook() 123 sheet = book.add_sheet(sheet1) 124 col = 0 125 for filed in fileds: 126 sheet.write(0, col, filed) 127 col += 1 128 129 row = 1 130 131 for data in all_data: 132 for col, field in enumerate(data): # 控制列數 133 sheet.write(row, col, field) 134 row += 1 # 每次寫完一行,行數加1 135 book.save(../ls/textfile/%s.xls %ls) 136 # pass 137 138 def login(): 139 db = pymysql.Connect(host="localhost", user="root", password="XXXXX", db="pythontest") 140 cur = db.cursor() 141 cur.execute("use students") 142 return cur, db 143 144 145 def doit(sql, cur, db): 146 try: 147 # 執行sql語句 148 cur.execute(sql) 149 # 提交到數據庫執行 150 db.commit() 151 except: 152 # 如果發生錯誤則回滾 153 db.rollback() 154 155 if __name__ == __main__: 156 # ls = readCSV() 157 # writeCSV(ls) 158 # readJson() 159 # writeJson(ls) 160 # readText() 161 # writeText(ls) 162 # readsql() 163 # file = "sql.txt" 164 # writesql(file) 165 # readexcel() 166 ls = "course" 167 writeexcel(ls)

python3 文件讀入寫出小結