文章目錄
1、把數字轉爲千位數值類型
str2 = '-1234567898.71'
result = "{:,}".format(float(str2))
print(result)
結果
-1,234,567,898.71
2、找出字符在字符串中的位置
#找出點在字符串中所有的位置
str1 = '123.456.789.87'
index = [m.start() for m in re.finditer('\.', str1)]
print(index )
結果
[3, 7, 11]
3、檢測字符串是不是純數字
str2 = '1234567898.71'
str3 = str2.replace('.','')
print(str3.isdigit())
結果
True
4、打印出文件的絕對路徑和文件名稱
# __file__,也可以是當前文件夾下的文件名稱
print(os.path.dirname(os.path.realpath(__file__)))
print(os.path.basename(os.path.realpath(__file__)))
結果
D:\code
test.py
5、給表格添加顏色
import openpyxl
from openpyxl.styles import Font # 導入字體模塊
from openpyxl.styles import PatternFill # 導入填充模塊
wk = openpyxl.load_workbook("./table_dir/第二個表 .xlsx") # 加載已經存在的excel
wk_name = wk.sheetnames
wk_sheet = wk[wk_name[0]]
fille = PatternFill('solid', fgColor='FFBB00') # 設置填充顏色爲 橙色
font = Font(u'宋體', size=11, bold=True, italic=True, strike=True, color='FFBB00') # 設置字體樣式
#添加顏色
wk_sheet['A2'].fill = fille # 應用填充樣式在A1單元格
# 給表格設置字體
wk_sheet.cell(row=2, column=2).font = font
# 賦值
wk_sheet.cell(row=2, column=2).value = '3'
wk.save(r"./table_dir/第一個表.xlsx") # 保存excel
6、Python 使用argparse參數的傳遞
腳本test.py
import argparse
def str2bool(value):
if value.lower() in ('yes', 'true', 'y', '1'):
return True
elif value.lower() in ('no', 'false', 'n','0'):
return False
else:
raise argparse.ArgumentTypeError('Unsupported value encountered!')
def main():
# description描述這個參數解析器是幹什麼的,當我們在命令行顯示幫助信息的時候會看到description描述的信息
parser = argparse.ArgumentParser(description="parameter")
# 通過對象的add_argument函數來增加參數。
# '-n','--name'表示同一個參數,default參數表示在運行命令時若沒有提供參數,程序會將此值當做參數值
parser.add_argument('-f', '--file')
parser.add_argument('--head', type=str2bool, default=False)
args = parser.parse_args()
file = args.file
head = args.head
print(file,head)
if __name__ == '__main__':
main()
調用
python test.py -f D:\code\test.py -head False
7、用flask實現文件上傳和下載
# -*- coding: utf-8 -*-
from werkzeug.utils import secure_filename
from flask import Flask,render_template,abort,request
from flask import send_from_directory
import os
app = Flask(__name__)
UPLOAD_FOLDER='upload'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
basedir = os.path.abspath(os.path.dirname(__file__))
ALLOWED_EXTENSIONS = set(['txt','png','jpg','xls','JPG','PNG','xlsx','gif','GIF'])
# 用於判斷文件後綴
def allowed_file(filename):
return '.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS
# 用於測試上傳
@app.route('/')
def upload_test():
return render_template('base.html')
# 上傳文件
@app.route('/upload',methods=['GET','POST'],strict_slashes=False)
def api_upload():
if request.method == 'GET':
return render_template('base.html')
else:
file_dir=os.path.join(basedir,app.config['UPLOAD_FOLDER'])
if not os.path.exists(file_dir):
os.makedirs(file_dir)
f=request.files['file'] # 從表單的file字段獲取文件,myfile爲該表單的name值
if f and allowed_file(f.filename): # 判斷是否是允許上傳的文件類型
file = f.filename
f.save(os.path.join(file_dir,file)) #保存文件到upload目錄
return render_template('base.html')
else:
return render_template('base.html')
# return jsonify({"errno":1001,"errmsg":"上傳失敗"})
@app.route('/download/<filename>', methods=['GET'])
def download(filename):
if request.method =="GET":
file_path =os.path.join(basedir,app.config['UPLOAD_FOLDER'])
if os.path.join(file_path, filename):
return send_from_directory(file_path,filename, as_attachment=True)
abort(404)
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8067,debug=True)
項目見github
8、pandas 找出某個值,在索引行的位置
找出test在pandas所在的位置
index = list(pd.index).index('test')
# 列表索引是從0開始
print(index+1)