From 5cc451e4d05283af272911eaf8651efabea0dc3e Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 3 Jan 2019 16:42:18 +0800 Subject: [PATCH 001/122] Add practices/keras/linear.py --- README.md | 6 + .../Untitled.ipynb | 181 ++++++++++++++++++ practices/keras/linear.py | 38 ++++ 3 files changed, 225 insertions(+) create mode 100644 pandas/python_data_analyse_crash_course/Untitled.ipynb create mode 100644 practices/keras/linear.py diff --git a/README.md b/README.md index 32a1f2b..446ff33 100755 --- a/README.md +++ b/README.md @@ -780,9 +780,13 @@ django-viewlet因为github星级太少而未收录 * Pandas:提供高性能,易用的数据结构和数据分析工具。[链接](https://github.com/pandas-dev/pandas) --强烈推荐 + * [facets](https://github.com/PAIR-code/facets) 机器学习数据集可视化 --推荐 + * 书籍:利用Python进行数据分析 2017 第二版 代码 [链接](https://github.com/wesm/pydata-book) --推荐 * [利用Python进行数据分析·第2版](https://www.jianshu.com/p/ac7bec000dad) --推荐 + + ## 数据验证(Data Validation) @@ -1315,6 +1319,8 @@ Python版本和环境管理 * wand:[MagickWand](http://www.imagemagick.org/script/magick-wand.php)的 Python 绑定。MagickWand 是 ImageMagick 的 C API 。[官网](https://github.com/dahlia/wand) * face_recognition:简单易用的 python 人脸识别库。[官网](https://github.com/ageitgey/face_recognition) --强烈推荐 * [pagan](https://github.com/daboth/pagan) - 基于输入字符串和散列的复古identicon(阿凡达)生成。 +* [opencv-python](https://github.com/skvark/opencv-python) 预编译的opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless。 --推荐 +* [imutils](https://github.com/jrosebr1/imutils) 一系列便利函数,可以使用OpenCV和Python轻松进行基本图像处理操作,如平移,旋转,调整大小,骨架化和显示Matplotlib图像。 --推荐 ## 实现(Implementations) diff --git a/pandas/python_data_analyse_crash_course/Untitled.ipynb b/pandas/python_data_analyse_crash_course/Untitled.ipynb new file mode 100644 index 0000000..4315179 --- /dev/null +++ b/pandas/python_data_analyse_crash_course/Untitled.ipynb @@ -0,0 +1,181 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO'\n", + " 'B' 'LSTAT']\n", + " CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX \\\n", + "0 0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296.0 \n", + "1 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 \n", + "\n", + " PTRATIO B LSTAT PRICE \n", + "0 15.3 396.9 4.98 24.0 \n", + "1 17.8 396.9 9.14 21.6 \n", + "0 no\n", + "1 no\n", + "2 no\n", + "3 no\n", + "4 no\n", + "Name: CHAS, dtype: object\n", + "(405, 14) (101, 14)\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import sys\n", + "sys.path.append('/home/andrew/code/facets/facets_overview/python')\n", + "\n", + "from generic_feature_statistics_generator import GenericFeatureStatisticsGenerator\n", + "\n", + "import pandas as pd\n", + "from sklearn import datasets\n", + "import tensorflow as tf\n", + "from sklearn.datasets import load_boston\n", + "import numpy as np\n", + "\n", + "boston = load_boston()\n", + "df = pd.DataFrame(boston.data)\t\n", + "print(boston.feature_names)\n", + "\n", + "df.columns = boston.feature_names\n", + "df['PRICE'] = boston.target\n", + "print(df.head(2))\n", + "\n", + "df['CHAS'] = df['CHAS'].map({1:'yes', 0:'no'})\n", + "print(df['CHAS'].head(5))\n", + "\n", + "### Create train/test set\n", + "df_train=df.sample(frac=0.8,random_state=200)\n", + "df_test=df.drop(df_train.index)\n", + "\n", + "print(df_train.shape, df_test.shape)\n", + "\n", + "# Calculate the feature statistics proto from the datasets and stringify it for use in facets overview\n", + "import base64\n", + "\n", + "gfsg = GenericFeatureStatisticsGenerator()\n", + "\n", + "proto = gfsg.ProtoFromDataFrames([{'name': 'train', 'table': df_train},\n", + " {'name': 'test', 'table': df_test}])\n", + "\n", + "#proto = gfsg.ProtoFromDataFrames([{'name': 'train', 'table': df_train}])\n", + "protostr = base64.b64encode(proto.SerializeToString()).decode(\"utf-8\")\n", + "\n", + "# Display the facets overview visualization for this data# Displ \n", + "from IPython.core.display import display, HTML\n", + "\n", + "HTML_TEMPLATE = \"\"\"\n", + " \n", + " \"\"\"\n", + "html = HTML_TEMPLATE.format(protostr=protostr)\n", + "display(HTML(html))\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "df['Q_PRICE'] = pd.qcut(df['PRICE'], 4, labels=[\"Lowest\", \"Low\", \"Upper\", \"upper_plus\"])\n", + "sprite_size = 32 if len(df.index)>50000 else 64\n", + "jsonstr = df.to_json(orient='records')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Display thde Dive visualization for this data\n", + "from IPython.core.display import display, HTML\n", + "\n", + "# Create Facets template \n", + "HTML_TEMPLATE = \"\"\"\n", + " \n", + " \"\"\"\n", + "\n", + "# Load the json dataset and the sprite_size into the template\n", + "html = HTML_TEMPLATE.format(jsonstr=jsonstr, sprite_size=sprite_size)\n", + "\n", + "# Display the template\n", + "display(HTML(html))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/practices/keras/linear.py b/practices/keras/linear.py new file mode 100644 index 0000000..c6ed331 --- /dev/null +++ b/practices/keras/linear.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# https://github.com/china-testing/python-api-tesing/blob/master/practices/keras/linear.py +# 项目实战讨论QQ群630011153 144081101 +# CreateDate: 2018-12-26 + +import keras +from keras.models import Sequential +from keras.layers import Dense, Activation +import numpy as np +import matplotlib.pyplot as plt + +x = data = np.linspace(1,2,200) +y = x*4 + np.random.randn(*x.shape) * 0.3 + + +model = Sequential() +model.add(Dense(1, input_dim=1, activation='linear')) + +model.compile(optimizer='sgd', loss='mse', metrics=['mse']) + +weights = model.layers[0].get_weights() +w_init = weights[0][0][0] +b_init = weights[1][0] +print('Linear regression model is initialized with weights w: %.2f, b: %.2f' % (w_init, b_init)) + + +model.fit(x,y, batch_size=1, epochs=30, shuffle=False) + +weights = model.layers[0].get_weights() +w_final = weights[0][0][0] +b_final = weights[1][0] +print('Linear regression model is trained to have weight w: %.2f, b: %.2f' % (w_final, b_final)) + +predict = model.predict(data) + +plt.plot(data, predict, 'b', data , y, 'k.') +plt.show() From eae69226974b2f84ab9db5833445e672fdc0c794 Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 4 Jan 2019 11:17:16 +0800 Subject: [PATCH 002/122] Add practices/keras/test_kaggle_natural.py --- practices/keras/load_kaggle_natural.py | 67 ++++++++++++++++++++++ practices/keras/test_kaggle_natural.py | 59 ++++++++++++++++++++ practices/keras/train_kaggle_natural.py | 74 +++++++++++++++++++++++++ 3 files changed, 200 insertions(+) create mode 100644 practices/keras/load_kaggle_natural.py create mode 100644 practices/keras/test_kaggle_natural.py create mode 100644 practices/keras/train_kaggle_natural.py diff --git a/practices/keras/load_kaggle_natural.py b/practices/keras/load_kaggle_natural.py new file mode 100644 index 0000000..d8b2c66 --- /dev/null +++ b/practices/keras/load_kaggle_natural.py @@ -0,0 +1,67 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# 项目实战讨论QQ群630011153 144081101 +# https://github.com/china-testing/python-api-tesing/blob/master/practices/keras/load_kaggle_natural.py +# 数据集:https://itbooks.pipipan.com/fs/18113597-329046186 +# CreateDate: 2019-01-04 +from keras.preprocessing.image import ImageDataGenerator +import numpy as np +import matplotlib.pyplot as plt +import keras +from keras.models import Model, load_model +from keras.layers import Activation, Dropout, Flatten, Dense +from keras.preprocessing.image import ImageDataGenerator +from keras.applications.vgg16 import VGG16 + +train_path = 'images/train/' +test_path = 'images/test/' +batch_size = 16 +image_size = 224 +num_class = 8 + + +train_datagen = ImageDataGenerator( + validation_split=0.3, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) + +train_generator = train_datagen.flow_from_directory( + directory=train_path, target_size=(image_size,image_size), + batch_size=batch_size, class_mode='categorical', + color_mode='rgb', shuffle=True) + + +x_batch, y_batch = train_generator.next() + +fig=plt.figure() +columns = 4 +rows = 4 +for i in range(1, columns*rows): + num = np.random.randint(batch_size) + image = x_batch[num].astype(np.int) + fig.add_subplot(rows, columns, i) + plt.imshow(image) +plt.show() + +#Load the VGG model +base_model = VGG16(weights='imagenet', include_top=False, + input_shape=(image_size, image_size, 3)) + +print(base_model.summary()) + + # Freeze the layers +for layer in base_model.layers: + layer.trainable = False + +# # Create the model +model = keras.models.Sequential() + +# # Add the vgg convolutional base model +model.add(base_model) + +# # Add new layers +model.add(Flatten()) +model.add(Dense(1024, activation='relu')) +model.add(Dense(1024, activation='relu')) +model.add(Dense(num_class, activation='softmax')) + +# # Show a summary of the model. Check the number of trainable parameters +print(model.summary()) \ No newline at end of file diff --git a/practices/keras/test_kaggle_natural.py b/practices/keras/test_kaggle_natural.py new file mode 100644 index 0000000..77df64e --- /dev/null +++ b/practices/keras/test_kaggle_natural.py @@ -0,0 +1,59 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# 项目实战讨论QQ群630011153 144081101 +# https://github.com/china-testing/python-api-tesing/blob/master/practices/keras/test_kaggle_natural.py +# 数据集:https://itbooks.pipipan.com/fs/18113597-329046186 +# CreateDate: 2019-01-04 +from keras.preprocessing.image import ImageDataGenerator +import numpy as np +import matplotlib.pyplot as plt +from keras.models import load_model + + +train_path = 'images/train/' +test_path = 'images/test/' +batch_size = 16 +image_size = 224 +num_class = 8 + + +model = load_model('fine_tune.h5') + +train_datagen = ImageDataGenerator() + +train_generator = train_datagen.flow_from_directory( + directory=train_path, target_size=(image_size,image_size), + batch_size=batch_size, class_mode='categorical', + color_mode='rgb', shuffle=True) + + +test_datagen = ImageDataGenerator() + +test_generator = test_datagen.flow_from_directory( + directory=test_path, target_size=(image_size, image_size), + color_mode='rgb', shuffle=False, class_mode='categorical', batch_size=1) + +filenames = test_generator.filenames +nb_samples = len(filenames) + +fig=plt.figure() +columns = 4 +rows = 4 +for i in range(1, columns*rows -1): + x_batch, y_batch = test_generator.next() + + name = model.predict(x_batch) + name = np.argmax(name, axis=-1) + true_name = y_batch + true_name = np.argmax(true_name, axis=-1) + + label_map = (test_generator.class_indices) + label_map = dict((v,k) for k,v in label_map.items()) #flip k,v + predictions = [label_map[k] for k in name] + true_value = [label_map[k] for k in true_name] + + image = x_batch[0].astype(np.int) + fig.add_subplot(rows, columns, i) + plt.title(str(predictions[0]) + ':' + str(true_value[0])) + plt.imshow(image) +plt.show() \ No newline at end of file diff --git a/practices/keras/train_kaggle_natural.py b/practices/keras/train_kaggle_natural.py new file mode 100644 index 0000000..71dbb3c --- /dev/null +++ b/practices/keras/train_kaggle_natural.py @@ -0,0 +1,74 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# 项目实战讨论QQ群630011153 144081101 +# https://github.com/china-testing/python-api-tesing/blob/master/practices/keras/train_kaggle_natural.py +# 数据集:https://itbooks.pipipan.com/fs/18113597-329046186 +# CreateDate: 2019-01-04 +from keras.preprocessing.image import ImageDataGenerator +import numpy as np +import matplotlib.pyplot as plt +import keras +from keras.models import Model, load_model +from keras.layers import Activation, Dropout, Flatten, Dense +from keras.preprocessing.image import ImageDataGenerator +from keras.applications.vgg16 import VGG16 +from keras.optimizers import SGD +# summarize history for accuracy +import matplotlib.pyplot as plt + + +train_path = 'images/train/' +test_path = 'images/test/' +batch_size = 16 +image_size = 224 +num_class = 8 + +train_datagen = ImageDataGenerator( + validation_split=0.3, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) + +train_generator = train_datagen.flow_from_directory( + directory=train_path, target_size=(image_size,image_size), + batch_size=batch_size, class_mode='categorical', + color_mode='rgb', shuffle=True) + +x_batch, y_batch = train_generator.next() + +#Load the VGG model +base_model = VGG16(weights='imagenet', include_top=False, input_shape=(image_size, image_size, 3)) + +print(base_model.summary()) + + # Freeze the layers +for layer in base_model.layers: + layer.trainable = False + +# # Create the model +model = keras.models.Sequential() + +# # Add the vgg convolutional base model +model.add(base_model) + +# # Add new layers +model.add(Flatten()) +model.add(Dense(1024, activation='relu')) +model.add(Dense(1024, activation='relu')) +model.add(Dense(num_class, activation='softmax')) + +# # Show a summary of the model. Check the number of trainable parameters +print(model.summary()) + +model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=1e-3), + metrics=['accuracy']) + +history = model.fit_generator( + train_generator, steps_per_epoch=train_generator.n/batch_size, epochs=10) + +model.save('fine_tune.h5') + + +plt.plot(history.history['loss']) +plt.title('loss') +plt.ylabel('loss') +plt.xlabel('epoch') +plt.legend(['loss'], loc='upper left') +plt.savefig("test.png") \ No newline at end of file From 573325cc5f96c41857c403dd894075ebe1cb9637 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 28 Jan 2019 09:42:12 +0800 Subject: [PATCH 003/122] Add Shogun in Readme! --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 446ff33..3607aa3 100755 --- a/README.md +++ b/README.md @@ -985,7 +985,8 @@ Python实现的数据库。 * [Serpent.AI](https://github.com/SerpentAI/SerpentAI) - 游戏代理框架。 使用任何视频游戏作为深度学习沙盒。 --推荐 * [TensorFlow](https://github.com/tensorflow/tensorflow) - 由Google创建的最受欢迎的深度学习框架。 --强烈推荐 * [Theano](https://github.com/Theano/Theano) - 用于快速数值计算的库. --推荐 - +* [Shogun](https://github.com/shogun-toolbox/shogun/) C++实现,为包括Python在内的多种语言和平台提供统一的接口。 它侧重于可扩展的内核方法,以解决回归和分类问题。 Shogun关注生物信息学,可以扩展以处理超过1000万个数据样本,同时保持准确性。 +* [CNTK](https://github.com/Microsoft/CNTK/tree/master/bindings/python) 微软的深度学习框架。 ## DevOps工具(DevOps Tools) From a446ef7571d15c8e00ed5f5b40e14b86300dc1be Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 12 Feb 2019 13:09:39 +0800 Subject: [PATCH 004/122] =?UTF-8?q?Add=20=E5=85=AB=E5=AD=97=20books?= =?UTF-8?q?=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 8 ++++++++ videos.md | 32 +------------------------------- 2 files changed, 9 insertions(+), 31 deletions(-) diff --git a/society_books.md b/society_books.md index 7338732..ac01e0d 100755 --- a/society_books.md +++ b/society_books.md @@ -320,6 +320,14 @@ [绍金解易经-八字揭秘.pdf](https://itbooks.pipipan.com/fs/18113597-309507364) +[图解三命通会 第3部论命精要 - 2009.pdf](https://itbooks.pipipan.com/fs/18113597-335869726) + +[图解三命通会 第2部吉凶推断 - 2009.pdf](https://itbooks.pipipan.com/fs/18113597-335869683) + +[图解三命通会 第1部 八字神煞 2009 -扫描.pdf](https://itbooks.pipipan.com/fs/18113597-335869623) + +[三命通会.pdf](https://itbooks.pipipan.com/fs/18113597-335869512) + [中国历史那些事儿系列套装:明朝那些事儿(全7册)、这里曾经是汉朝(全6册)、唐史并不如烟(全5册)、如果这是宋史(全10册).pdf](https://itbooks.pipipan.com/fs/18113597-309521853) diff --git a/videos.md b/videos.md index 211aed1..7c4cd1c 100755 --- a/videos.md +++ b/videos.md @@ -6,37 +6,7 @@ ### 手诊 -- [手诊与养生保健01.WMV](https://itbooks.pipipan.com/fs/18113597-313864878) -- [手诊与养生保健02.WMV](https://itbooks.pipipan.com/fs/18113597-313864924) -- [手诊与养生保健03.WMV](https://itbooks.pipipan.com/fs/18113597-313864971) -- [手诊与养生保健04.WMV](https://itbooks.pipipan.com/fs/18113597-313865022) -- [手诊与养生保健05.WMV](https://itbooks.pipipan.com/fs/18113597-313865055) -- [手诊与养生保健06.WMV](https://itbooks.pipipan.com/fs/18113597-313865077) -- [手诊与养生保健07.WMV](https://itbooks.pipipan.com/fs/18113597-313865094) -- [手诊与养生保健08.WMV](https://itbooks.pipipan.com/fs/18113597-313865118) -- [手诊与养生保健09.WMV](https://itbooks.pipipan.com/fs/18113597-313865130) -- [手诊与养生保健10.WMV](https://itbooks.pipipan.com/fs/18113597-313865143) -- [手诊与养生保健11.WMV](https://itbooks.pipipan.com/fs/18113597-313865160) -- [手诊与养生保健12.WMV](https://itbooks.pipipan.com/fs/18113597-313865181) -- [手诊与养生保健13.WMV](https://itbooks.pipipan.com/fs/18113597-313865190) -- [手诊与养生保健14.WMV](https://itbooks.pipipan.com/fs/18113597-313865205) -- [手诊与养生保健15.WMV](https://itbooks.pipipan.com/fs/18113597-313865233) -- [手诊与养生保健16.WMV](https://itbooks.pipipan.com/fs/18113597-313865263) -- [手诊与养生保健17.WMV](https://itbooks.pipipan.com/fs/18113597-313865286) -- [手诊与养生保健18.WMV](https://itbooks.pipipan.com/fs/18113597-313865310) -- [手诊与养生保健19.WMV](https://itbooks.pipipan.com/fs/18113597-313865329) -- [手诊与养生保健20.WMV](https://itbooks.pipipan.com/fs/18113597-313865364) -- [手诊与养生保健21.WMV](https://itbooks.pipipan.com/fs/18113597-313865398) -- [手诊与养生保健22.WMV](https://itbooks.pipipan.com/fs/18113597-313865419) -- [手诊与养生保健23.WMV](https://itbooks.pipipan.com/fs/18113597-313865439) -- [手诊与养生保健24.WMV](https://itbooks.pipipan.com/fs/18113597-313865460) -- [手诊与养生保健25.WMV](https://itbooks.pipipan.com/fs/18113597-313865472) -- [手诊与养生保健26.WMV](https://itbooks.pipipan.com/fs/18113597-313865485) -- [手诊与养生保健27.WMV](https://itbooks.pipipan.com/fs/18113597-313865499) -- [手诊与养生保健28.WMV](https://itbooks.pipipan.com/fs/18113597-313865506) -- [手诊与养生保健29.WMV](https://itbooks.pipipan.com/fs/18113597-313865520) -- [手诊与养生保健30.WMV](https://itbooks.pipipan.com/fs/18113597-313865529) -- [手诊与养生保健-共30集 目录.docx](https://itbooks.pipipan.com/fs/18113597-313865532) +《手诊与养生保健》系列视频,参见:QQ群184175668 ### 经典电影 From 942b0699efcc8ad763b6adefd1360a8b7f76d6ef Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 21 Feb 2019 18:15:35 +0800 Subject: [PATCH 005/122] Add bazi.py --- bazi/bazi.py | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 bazi/bazi.py diff --git a/bazi/bazi.py b/bazi/bazi.py new file mode 100644 index 0000000..90da6c4 --- /dev/null +++ b/bazi/bazi.py @@ -0,0 +1,236 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# CreateDate: 2019-2-21 + +# -*- coding:utf-8 -*- + +import sxtwl +import argparse +import collections + + +Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] +gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", + "庚":"金", "辛":"金", "壬":"水", "癸":"水"} +gan_health = { + "金":"筋胸、大肠肺", + "木":"头肩、肝胆", + "水":"胫足、膀胱肾(比如结石)", + "火":"额齿、小肠心脏", + "土":"鼻面、脾胃", +} +Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] +zhi5 = {"子":{"癸":8}, + "丑":{"辛":1,"癸":2, "己":5}, + "寅":{"戊":1,"丙":2, "甲":5}, + "卯":{"乙":8}, + "辰":{"癸":1,"乙":2, "戊":5}, + "巳":{"庚":1,"戊":2, "丙":5}, + "午":{"己":3, "丁":5}, + "未":{"乙":1,"丁":2, "己":5}, + "申":{"戊":1,"壬":2, "庚":5}, + "酉":{"辛":8}, + "戌":{"丁":1,"辛":2, "戊":5}, + "亥":{"甲":3, "壬":5}} + +ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] +numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] +Week = ["日", "一", "二", "三", "四", "五", "六"] +jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑","白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"] +ymc = ["十一", "十二", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十" ] +rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"] + +gan_hes = { + ("甲", "己"): "中正之合 化土", + ("乙", "庚"): "仁义之合 化金", + ("丙", "辛"): "丙义之合 化水", + ("丁", "壬"): "淫慝之合 化木", + ("戊", "癸"): "无情之合 化火", +} + +gan_chongs = { + ("甲", "庚"): "相冲", + ("乙", "辛"): "相冲", + ("丙", "壬"): "相冲", + ("丁", "癸"): "相冲", +} + +zhi_6hes = { + ("子", "丑"): "化土", + ("寅", "亥"): "化木", + ("卯", "戌"): "化火", + ("辰", "酉"): "化金", + ("巳", "申"): "化水", + ("午", "未"): "化土", +} + +zhi_3hes = { + ("申", "子", "辰"): "化水", + ("巳", "酉", "丑"): "化金", + ("寅", "午", "戌"): "化火", + ("亥", "卯", "未"): "化木", +} + +zhi_huis = { + ("亥", "子", "丑"): "化水", + ("寅", "卯", "辰"): "化木", + ("巳", "午", "未"): "化火", + ("申", "酉", "戌"): "化金", +} + +zhi_chongs = { + ("子", "午"): "相冲", + ("丑", "未"): "相冲", + ("寅", "申"): "相冲", + ("卯", "酉"): "相冲", + ("辰", "戌"): "相冲", + ("巳", "亥"): "相冲", +} + +zhi_poes = { + ("子", "酉"): "相破", + ("午", "卯"): "相破", + ("巳", "申"): "相破", + ("寅", "亥"): "相破", + ("辰", "丑"): "相破", + ("戌", "未"): "相破", +} + +zhi_poes = { + ("子", "酉"): "相破", + ("午", "卯"): "相破", + ("巳", "申"): "相破", + ("寅", "亥"): "相破", + ("辰", "丑"): "相破", + ("戌", "未"): "相破", +} + +zhi_haies = { + ("子", "未"): "相害", + ("丑", "午"): "相害", + ("寅", "巳"): "相害", + ("卯", "辰"): "相害", + ("申", "亥"): "相害", + ("酉", "戌"): "相害", +} + +zhi_xings = { + ("寅", "巳"): "寅刑巳 无恩之刑", + ("巳", "申"): "巳刑申 无恩之刑", + ("申", "寅"): "申刑寅 无恩之刑", + ("未", "丑"): "未刑丑 持势之刑", + ("丑", "戌"): "丑刑戌 持势之刑", + ("戌", "未"): "戌刑未 持势之刑", + ("子", "卯"): "子刑卯 卯刑子 无礼之刑", +} + +zhi_zixings = ['辰', '午', '酉', '亥'] + +description = ''' + +''' + +parser = argparse.ArgumentParser(description=description, + formatter_class=argparse.RawTextHelpFormatter) +parser.add_argument('year', action="store", help=u'year', type=int) +parser.add_argument('month', action="store", help=u'month', type=int) +parser.add_argument('day', action="store", help=u'day', type=int) +parser.add_argument('time', action="store", help=u'time', type=float) +parser.add_argument('-g', action="store_true", default=False, help=u'是否采用公历') +parser.add_argument('-r', action="store_true", default=False, help=u'是否为闰月,仅仅使用于农历') +parser.add_argument('--version', action='version', + version='%(prog)s 0.1 Rongzhong xu 2019 02 21') +options = parser.parse_args() + + +lunar = sxtwl.Lunar(); +if options.g: + day = lunar.getDayBySolar(options.year, options.month, options.day) +else: + day = lunar.getDayByLunar(options.year, options.month, options.day, options.r) + +gz = lunar.getShiGz(day.Lday2.tg, int(options.time)) + +# 计算甲干相合 +Gans = collections.namedtuple("Gans", "year month day time") +gans = Gans(year=Gan[day.Lyear2.tg], month=Gan[day.Lmonth2.tg], day=Gan[day.Lday2.tg], time=Gan[gz.tg]) +Zhis = collections.namedtuple("Zhis", "year month day time") +zhis = Zhis(year=Zhi[day.Lyear2.dz], month=Zhi[day.Lmonth2.dz], day=Zhi[day.Lday2.dz], time=Zhi[gz.dz]) + +print("\n日期:") +print("======================================") +print("公历:") +print("\t{}年{}月{}日".format(day.y, day.m, day.d)) + +Lleap = "闰" if day.Lleap else "" +print("农历:") +print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) + +print("\n八字:") +print("="*110) +print("{:30s}{:30s}{:30s}{:30s}".format('年', "月", "日", "时")) +print("-"*110) +print("{:>11s}-{:<11s}{:>11s}-{:<11s}{:>11s}-{:<11s}{:>11s}-{:<11s}".format( + gans.year, gan5[gans.year], gans.month, gan5[gans.month], + gans.day, gan5[gans.day], gans.time, gan5[gans.time], +)) +print("{:^24s}{:^24s}{:^24s}{:^24s}".format(*zhis)) +for item in zhis: + out = item + '=' + for gan in zhi5[item]: + out = out + "{}{}{} ".format(gan, gan5[gan], zhi5[item][gan]) + "" + print("{:<22s}".format(out), end=' ') + +def check_subset(gans, db, desc): + flag = True + for item in db: + if set(item).issubset(gans): + if flag: + print("\n\n{}:".format(desc)) + print("="*60) + flag = False + print(item, db[item]) + +check_subset(gans, gan_hes, '十干合') +check_subset(gans, gan_chongs, '十干冲') +check_subset(zhis, zhi_6hes, '地支六合') +check_subset(zhis, zhi_3hes, '地支三合') +check_subset(zhis, zhi_huis, '地支三会') +check_subset(zhis, zhi_chongs, '地支相冲') +check_subset(zhis, zhi_poes, '地支相破') +check_subset(zhis, zhi_haies, '地支相害') +check_subset(zhis, zhi_xings, '地支相刑') + +flag = True +for item in zhi_zixings: + if zhis.count(item) > 1: + if flag: + print("\n{}:".format("地支自刑")) + print("=========================") + flag = False + print(item) + + +# 计算五行分数 + +scores = {"金":0, "木":0, "水":0, "火":0, "土":0} + +for item in gans: + scores[gan5[item]] += 5 + +for item in list(zhis) + [zhis.month]: + for gan in zhi5[item]: + scores[gan5[gan]] += zhi5[item][gan] + +print("\n\n五行分数") +print("="*60) +print(scores) +print("身体需要注意:{}".format(gan_health[min(scores, key=scores.get)])) + + + + + + + From 01776512f77ab5a9a4031d791ea15941dfe3c9bb Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 22 Feb 2019 18:25:53 +0800 Subject: [PATCH 006/122] =?UTF-8?q?Add=20=E5=8D=81=E7=A5=9E=20in=20bazi.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/bazi.py | 96 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 73 insertions(+), 23 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index 90da6c4..9c20294 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -8,9 +8,43 @@ import sxtwl import argparse import collections +from bidict import bidict Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] +ten_deities = { + '甲':bidict({'甲':'比肩', "乙":'劫财', "丙":'食神', "丁":'伤官', "戊":'偏财', + "己":'正财', "庚":'偏官', "辛":'正官', "壬":'偏印', + "癸":'印|印绶'}), + '乙':bidict({'甲':'劫财', "乙":'比肩', "丙":'伤官', "丁":'食神', "戊":'正财', + "己":'偏财', "庚":'正官', "辛":'偏官', "壬":'印', + "癸":'偏印'}), + '丙':bidict({'丙':'比肩', "丁":'劫财', "戊":'食神', "己":'伤官', "庚":'偏财', + "辛":'正财', "壬":'偏官', "癸":'正官', "甲":'偏印', + "乙":'印'}), + '丁':bidict({'丙':'劫财', "丁":'比肩', "戊":'伤官', "己":'食神', "庚":'正财', + "辛":'偏财', "壬":'正官', "癸":'偏官', "甲":'印', + "乙":'偏印'}), + '戊':bidict({'戊':'比肩', "己":'劫财', "庚":'食神', "辛":'伤官', "壬":'偏财', + "癸":'正财', "甲":'偏官', "乙":'正官', "丙":'偏印', + "丁":'印'}), + '己':bidict({'戊':'劫财', "己":'比肩', "庚":'伤官', "辛":'食神', "壬":'正财', + "癸":'偏财', "甲":'正官', "乙":'偏官', "丙":'印', + "丁":'偏印'}), + '庚':bidict({'庚':'比肩', "辛":'劫财', "壬":'食神', "癸":'伤官', "甲":'偏财', + "乙":'正财', "丙":'偏官', "丁":'正官', "戊":'偏印', + "己":'印'}), + '辛':bidict({'庚':'劫财', "辛":'比肩', "壬":'伤官', "癸":'食神', "甲":'正财', + "乙":'偏财', "丙":'正官', "丁":'偏官', "戊":'印', + "己":'偏印'}), + '壬':bidict({'壬':'比肩', "癸":'劫财', "甲":'食神', "乙":'伤官', "丙":'偏财', + "丁":'正财', "戊":'偏官', "己":'正官', "庚":'偏印', + "辛":'印'}), + '癸':bidict({'壬':'劫财', "癸":'比肩', "甲":'伤官', "乙":'食神', "丙":'正财', + "丁":'偏财', "戊":'正官', "己":'偏官', "庚":'印', + "辛":'偏印'}), + +} gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", "庚":"金", "辛":"金", "壬":"水", "癸":"水"} gan_health = { @@ -21,18 +55,31 @@ "土":"鼻面、脾胃", } Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] -zhi5 = {"子":{"癸":8}, - "丑":{"辛":1,"癸":2, "己":5}, - "寅":{"戊":1,"丙":2, "甲":5}, - "卯":{"乙":8}, - "辰":{"癸":1,"乙":2, "戊":5}, - "巳":{"庚":1,"戊":2, "丙":5}, - "午":{"己":3, "丁":5}, - "未":{"乙":1,"丁":2, "己":5}, - "申":{"戊":1,"壬":2, "庚":5}, - "酉":{"辛":8}, - "戌":{"丁":1,"辛":2, "戊":5}, - "亥":{"甲":3, "壬":5}} +zhi5 = {"子":{"壬":56,"癸":184}, + "丑":{"辛":40,"癸":56, "己":144}, + "寅":{"戊":40,"丙":40, "甲":160}, + "卯":{"甲":56, "乙":184}, + "辰":{"癸":40,"乙":56, "戊":144}, + "巳":{"庚":40,"戊":56, "丙":144}, + "午":{"丙":56, "丁":184}, + "未":{"甲":40,"丁":56, "己":144}, + "申":{"戊":40,"壬":40, "庚":160}, + "酉":{ "庚":56, "辛":184}, + "戌":{"丙":40,"辛":56, "戊":144}, + "亥":{"戊":40,"甲":40, "壬":160}} + +#zhi5 = {"子":{"癸":8}, + #"丑":{"辛":1,"癸":2, "己":5}, + #"寅":{"戊":1,"丙":2, "甲":5}, + #"卯":{"乙":8}, + #"辰":{"癸":1,"乙":2, "戊":5}, + #"巳":{"庚":1,"戊":2, "丙":5}, + #"午":{"己":3, "丁":5}, + #"未":{"乙":1,"丁":2, "己":5}, + #"申":{"戊":1,"壬":2, "庚":5}, + #"酉":{"辛":8}, + #"戌":{"丁":1,"辛":2, "戊":5}, + #"亥":{"甲":3, "壬":5}} ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] @@ -157,6 +204,7 @@ gans = Gans(year=Gan[day.Lyear2.tg], month=Gan[day.Lmonth2.tg], day=Gan[day.Lday2.tg], time=Gan[gz.tg]) Zhis = collections.namedtuple("Zhis", "year month day time") zhis = Zhis(year=Zhi[day.Lyear2.dz], month=Zhi[day.Lmonth2.dz], day=Zhi[day.Lday2.dz], time=Zhi[gz.dz]) +me = gans.day print("\n日期:") print("======================================") @@ -167,20 +215,22 @@ print("农历:") print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) -print("\n八字:") -print("="*110) -print("{:30s}{:30s}{:30s}{:30s}".format('年', "月", "日", "时")) -print("-"*110) -print("{:>11s}-{:<11s}{:>11s}-{:<11s}{:>11s}-{:<11s}{:>11s}-{:<11s}".format( - gans.year, gan5[gans.year], gans.month, gan5[gans.month], - gans.day, gan5[gans.day], gans.time, gan5[gans.time], +print("\n八字: 同义词:七杀|偏官 偏印|枭神") +print("="*150) +print("{:<30s}{:<30s}{:<30s}{:<30s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) +print("-"*150) +print("{:>11s}-{:<19s}{:>11s}-{:<19s}{:>11s}-{:<19s}{:>11s}-{:<19s}".format( + gans.year, '{} [{}]'.format(gan5[gans.year], ten_deities[me][gans.year]), + gans.month, '{} [{}]'.format(gan5[gans.month], ten_deities[me][gans.month]), + gans.day, '{} [{}]'.format(gan5[gans.month], '自己'), + gans.time, '{} [{}]'.format(gan5[gans.time], ten_deities[me][gans.time]), )) -print("{:^24s}{:^24s}{:^24s}{:^24s}".format(*zhis)) +print("{:^32s}{:^32s}{:^32s}{:^32s}".format(*zhis)) for item in zhis: out = item + '=' for gan in zhi5[item]: out = out + "{}{}{} ".format(gan, gan5[gan], zhi5[item][gan]) + "" - print("{:<22s}".format(out), end=' ') + print("{:<30s}".format(out), end=' ') def check_subset(gans, db, desc): flag = True @@ -212,12 +262,12 @@ def check_subset(gans, db, desc): print(item) -# 计算五行分数 +# 计算五行分数 http://www.131.com.tw/word/b3_2_14.htm scores = {"金":0, "木":0, "水":0, "火":0, "土":0} for item in gans: - scores[gan5[item]] += 5 + scores[gan5[item]] += 150 for item in list(zhis) + [zhis.month]: for gan in zhi5[item]: From 275f1b50741096db24a5c78b1aaacae5a3ee4dad Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 25 Feb 2019 22:58:10 +0800 Subject: [PATCH 007/122] =?UTF-8?q?Add=20=E5=9C=B0=E6=94=AF=E9=85=8D?= =?UTF-8?q?=E5=8D=81=E7=A5=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/bazi.py | 230 ++++++++++++++++++++++++++++++++++++++------------- bazi/sizi.py | 28 +++++++ 2 files changed, 201 insertions(+), 57 deletions(-) create mode 100644 bazi/sizi.py diff --git a/bazi/bazi.py b/bazi/bazi.py index 9c20294..b2c312d 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -8,51 +8,141 @@ import sxtwl import argparse import collections +import pprint from bidict import bidict Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] ten_deities = { '甲':bidict({'甲':'比肩', "乙":'劫财', "丙":'食神', "丁":'伤官', "戊":'偏财', - "己":'正财', "庚":'偏官', "辛":'正官', "壬":'偏印', - "癸":'印|印绶'}), + "己":'正财', "庚":'偏官', "辛":'正官', "壬":'偏印', "癸":'印', "子":'沐浴', + "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', + "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), '乙':bidict({'甲':'劫财', "乙":'比肩', "丙":'伤官', "丁":'食神', "戊":'正财', - "己":'偏财', "庚":'正官', "辛":'偏官', "壬":'印', - "癸":'偏印'}), + "己":'偏财', "庚":'正官', "辛":'偏官', "壬":'印',"癸":'偏印', "子":'病', + "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', + "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), '丙':bidict({'丙':'比肩', "丁":'劫财', "戊":'食神', "己":'伤官', "庚":'偏财', - "辛":'正财', "壬":'偏官', "癸":'正官', "甲":'偏印', - "乙":'印'}), + "辛":'正财', "壬":'偏官', "癸":'正官', "甲":'偏印', "乙":'印',"子":'胎', + "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), '丁':bidict({'丙':'劫财', "丁":'比肩', "戊":'伤官', "己":'食神', "庚":'正财', - "辛":'偏财', "壬":'正官', "癸":'偏官', "甲":'印', - "乙":'偏印'}), + "辛":'偏财', "壬":'正官', "癸":'偏官', "甲":'印',"乙":'偏印', "子":'绝', + "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), '戊':bidict({'戊':'比肩', "己":'劫财', "庚":'食神', "辛":'伤官', "壬":'偏财', - "癸":'正财', "甲":'偏官', "乙":'正官', "丙":'偏印', - "丁":'印'}), + "癸":'正财', "甲":'偏官', "乙":'正官', "丙":'偏印', "丁":'印',"子":'胎', + "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), '己':bidict({'戊':'劫财', "己":'比肩', "庚":'伤官', "辛":'食神', "壬":'正财', - "癸":'偏财', "甲":'正官', "乙":'偏官', "丙":'印', - "丁":'偏印'}), + "癸":'偏财', "甲":'正官', "乙":'偏官', "丙":'印',"丁":'偏印',"子":'绝', + "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), '庚':bidict({'庚':'比肩', "辛":'劫财', "壬":'食神', "癸":'伤官', "甲":'偏财', - "乙":'正财', "丙":'偏官', "丁":'正官', "戊":'偏印', - "己":'印'}), + "乙":'正财', "丙":'偏官', "丁":'正官', "戊":'偏印', "己":'印',"子":'死', + "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', + "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), '辛':bidict({'庚':'劫财', "辛":'比肩', "壬":'伤官', "癸":'食神', "甲":'正财', - "乙":'偏财', "丙":'正官', "丁":'偏官', "戊":'印', - "己":'偏印'}), + "乙":'偏财', "丙":'正官', "丁":'偏官', "戊":'印', "己":'偏印', "子":'长生', + "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', + "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), '壬':bidict({'壬':'比肩', "癸":'劫财', "甲":'食神', "乙":'伤官', "丙":'偏财', - "丁":'正财', "戊":'偏官', "己":'正官', "庚":'偏印', - "辛":'印'}), + "丁":'正财', "戊":'偏官', "己":'正官', "庚":'偏印', "辛":'印',"子":'帝旺', + "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', + "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), '癸':bidict({'壬':'劫财', "癸":'比肩', "甲":'伤官', "乙":'食神', "丙":'正财', - "丁":'偏财', "戊":'正官', "己":'偏官', "庚":'印', - "辛":'偏印'}), + "丁":'偏财', "戊":'正官', "己":'偏官', "庚":'印',"辛":'偏印', "子":'建', + "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', + "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), } gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", "庚":"金", "辛":"金", "壬":"水", "癸":"水"} gan_health = { - "金":"筋胸、大肠肺", - "木":"头肩、肝胆", - "水":"胫足、膀胱肾(比如结石)", - "火":"额齿、小肠心脏", - "土":"鼻面、脾胃", + "金":''' + 秋天较走运 + 申月、酉月、猴年和鸡年运气较好 + 下午三点至下午七点是吉时 + 西方是吉方 + 住朝西的房子较吉利 + 睡房在房子的西方较好 + 睡房的西方有窗字较顺利 + 金属床有利健康 + 办公桌朝西有助工作效率 + 吉祥颜色是白色 + 室内装璜用白色系统 + 穿衣用白色系列 + 开白色车子较平安易发财 + 勿伤心,注意呼吸系统、肺、肠, 筋 + 武术、击搏、兵器运动、健身房运动也很好 + 和金有关的工作较容易''', + "木":''' + 春天或清风徐来的天气较走运 + 卯月、寅月、兔年和虎年运气较好 + 上午三点至上午七点是吉时 + 东方是吉方 + 住朝东的房子较吉利 + 睡房在房子的东方较好 + 睡房的东方有窗字较顺利 + 木床有利健康 + 办公桌朝东有助工作效率 + 吉祥颜色是绿色 + 室内装璜用绿色系统 + 穿衣用绿色系列 + 开绿色车子较平安易发财 + 多喝点酸性饮料,忌生气,注意神精系统、肝、胆、头肩、肝胆 + 多打高尔夫球、公园散步、徒步树林等户外运动 + 和木有关的工作较容易。''', + "水":''' + 身体需要注意: 胫足、膀胱肾(比如结石) 多喝水 + 冬天或冷天气较走运 + 亥月、子月、猪年和鼠年运气较好 + 晚上九点至上午一点是吉时 + 北方较冷是吉方 + 住朝北的房子较吉利 + 睡房在房子的北方较好 + 睡房的北方有窗字较顺利 + 金属床或水床有利健康 + 办公桌朝北有助工作效率 + 吉祥颜色是黑色 + 室内装璜用黑色系统 + 穿衣用黑色系列,带珠宝也不错 + 开黑色车子较平安易发财 + 多喝水,注意肾脏系统 + 多做游泳、潜水、滑雪、钓鱼、溜冰等户外运动 + 和水有关的工作较容易。''', + "火":''' + 夏天或热天气较走运 + 午月、巳月、马年和蛇年运气较好 + 上午九点至下午一点是吉时 + 南方较热是吉方 + 住朝南的房子较吉利 + 睡房在房子的南方较好 + 睡房的南方有窗字较顺利 + 木床有利健康 + 办公桌朝南有助工作效率 + 吉祥颜色是红色 + 室内装璜用红色系统 + 穿衣用红色系列 + 开红色车子较平安易发财 + 要常笑,注意心脏系统、血液循环、眼睛、额齿 + 多做打篮球、网球、排球、骑单车等户外运动 + 和火有关的工作较容易''', + "土":''' + 春、夏、秋、冬四季交接之时段较走运 + 丑、辰、未、戌月和牛、龙、羊、狗年运气较好 + 上午二点、八点左右和下午二点、八点左右都是吉时 + 起居环境和气候不要太乾或太湿 + 睡房在房子的中间较好 + 办公桌靠房子的中间,有助工作效率 + 吉祥颜色是棕黄色 + 室内装璜用棕黄色系统 + 穿衣用棕黄色系列,带古玉很不错 + 开棕黄色车子较平安易发财 + 勿常担心事情,太多虑 + 吃些甜点,注意消化系统、脾、肌肉 + 多做园艺、露营、走路等户外运动。下棋、宗教场所都好 + 和土有关的工作较容易''', } Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] zhi5 = {"子":{"壬":56,"癸":184}, @@ -180,57 +270,80 @@ parser = argparse.ArgumentParser(description=description, formatter_class=argparse.RawTextHelpFormatter) -parser.add_argument('year', action="store", help=u'year', type=int) -parser.add_argument('month', action="store", help=u'month', type=int) -parser.add_argument('day', action="store", help=u'day', type=int) -parser.add_argument('time', action="store", help=u'time', type=float) +parser.add_argument('year', action="store", help=u'year') +parser.add_argument('month', action="store", help=u'month') +parser.add_argument('day', action="store", help=u'day') +parser.add_argument('time', action="store", help=u'time') +parser.add_argument('-b', action="store_true", default=False, help=u'直接输入八字') parser.add_argument('-g', action="store_true", default=False, help=u'是否采用公历') parser.add_argument('-r', action="store_true", default=False, help=u'是否为闰月,仅仅使用于农历') parser.add_argument('--version', action='version', version='%(prog)s 0.1 Rongzhong xu 2019 02 21') options = parser.parse_args() +Gans = collections.namedtuple("Gans", "year month day time") +Zhis = collections.namedtuple("Zhis", "year month day time") -lunar = sxtwl.Lunar(); -if options.g: - day = lunar.getDayBySolar(options.year, options.month, options.day) +if options.b: + gans = Gans(year=options.year[0], month=options.month[0], + day=options.day[0], time=options.time[0]) + zhis = Gans(year=options.year[1], month=options.month[1], + day=options.day[1], time=options.time[1]) else: - day = lunar.getDayByLunar(options.year, options.month, options.day, options.r) - -gz = lunar.getShiGz(day.Lday2.tg, int(options.time)) + + lunar = sxtwl.Lunar(); + if options.g: + day = lunar.getDayBySolar( + int(options.year), int(options.month), int(options.day)) + else: + day = lunar.getDayByLunar( + int(options.year), int(options.month), int(options.day), options.r) + + gz = lunar.getShiGz(day.Lday2.tg, int(options.time)) -# 计算甲干相合 -Gans = collections.namedtuple("Gans", "year month day time") -gans = Gans(year=Gan[day.Lyear2.tg], month=Gan[day.Lmonth2.tg], day=Gan[day.Lday2.tg], time=Gan[gz.tg]) -Zhis = collections.namedtuple("Zhis", "year month day time") -zhis = Zhis(year=Zhi[day.Lyear2.dz], month=Zhi[day.Lmonth2.dz], day=Zhi[day.Lday2.dz], time=Zhi[gz.dz]) + # 计算甲干相合 + gans = Gans(year=Gan[day.Lyear2.tg], month=Gan[day.Lmonth2.tg], + day=Gan[day.Lday2.tg], time=Gan[gz.tg]) + zhis = Zhis(year=Zhi[day.Lyear2.dz], month=Zhi[day.Lmonth2.dz], + day=Zhi[day.Lday2.dz], time=Zhi[gz.dz]) me = gans.day -print("\n日期:") -print("======================================") -print("公历:") -print("\t{}年{}月{}日".format(day.y, day.m, day.d)) - -Lleap = "闰" if day.Lleap else "" -print("农历:") -print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) +if not options.b: + print("\n日期:") + print("======================================") + print("公历:") + print("\t{}年{}月{}日".format(day.y, day.m, day.d)) + + Lleap = "闰" if day.Lleap else "" + print("农历:") + print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) -print("\n八字: 同义词:七杀|偏官 偏印|枭神") -print("="*150) +print("\n八字: 同义词:七杀|偏官 偏印|枭神 阳刃|帝旺(阳干)|冠带(阴干)") +print("="*140) print("{:<30s}{:<30s}{:<30s}{:<30s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) -print("-"*150) +print("-"*140) print("{:>11s}-{:<19s}{:>11s}-{:<19s}{:>11s}-{:<19s}{:>11s}-{:<19s}".format( gans.year, '{} [{}]'.format(gan5[gans.year], ten_deities[me][gans.year]), gans.month, '{} [{}]'.format(gan5[gans.month], ten_deities[me][gans.month]), - gans.day, '{} [{}]'.format(gan5[gans.month], '自己'), + me, '{} [{}]'.format(gan5[me], '自己'), gans.time, '{} [{}]'.format(gan5[gans.time], ten_deities[me][gans.time]), )) -print("{:^32s}{:^32s}{:^32s}{:^32s}".format(*zhis)) +print("{:>11s}--{:<19s}{:>12s}--{:<19s}{:>12s}--{:<19s}{:>12s}--{:<19s}".format( + zhis.year, ten_deities[me][zhis.year], + zhis.month, ten_deities[me][zhis.month], + zhis.day, ten_deities[me][zhis.day], + zhis.time, ten_deities[me][zhis.time], +)) for item in zhis: - out = item + '=' + out = '' for gan in zhi5[item]: - out = out + "{}{}{} ".format(gan, gan5[gan], zhi5[item][gan]) + "" - print("{:<30s}".format(out), end=' ') + out = out + "{}{}{}{} ".format(gan, gan5[gan], zhi5[item][gan], ten_deities[me][gan]) + print("{:<25s}".format(out), end=' ') + +print("\n\n") +print("="*140) +pprint.pprint(dict(ten_deities[me])) +#print(ten_deities[me]) def check_subset(gans, db, desc): flag = True @@ -276,7 +389,10 @@ def check_subset(gans, db, desc): print("\n\n五行分数") print("="*60) print(scores) -print("身体需要注意:{}".format(gan_health[min(scores, key=scores.get)])) +short = min(scores, key=scores.get) +print("\n\n五行缺{}的建议".format(short)) +print("=========================") +print("{}".format(gan_health[short])) diff --git a/bazi/sizi.py b/bazi/sizi.py new file mode 100644 index 0000000..9cb9c22 --- /dev/null +++ b/bazi/sizi.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# CreateDate: 2019-2-21 + +{ +'甲日甲子':''' +六甲日生甲子时,败中印绶官生至; +月通木气不寻常,反此而言虚名利。 + +甲日甲子时,虽甲败在子,暗有癸水生气印绶,兼有官生 +其印,若己土破印,通月气,贵。否则,秀而不实。 +''' +'甲子日甲子时':'''子遥巳格,年月无庚辛申酉,丑绊午冲, +离祖自立,贵。若年月俱寅,逢申酉运,大富后退财。子亥卯 +未年月,行西运,贵。甲辰月亦贵。酉月,只以正官格论,大 +贵。巳午戌月,平常。午月,甲死子冲,尤不吉。乙卯、乙巳 +月,主法死。 ''', +'甲子日甲子时':''' + 甲寅日甲子时,拱丑中辛,贵。年月无庚辛申酉丑未,大 +贵。再甲寅月,孤克,惟憎道可。亥子年月,四品贵。午月, +行东北方运,亦贵。如酉丑巳等月,明有官煞,柱但有印,俱 +贵。卯未,身太旺,未免刑伤。乙巳月,受刑。丁亥月,旺中 +恶死。 + 甲辰日甲子时,若水位年月,水泛木浮,主移根换叶;申 + + +} From a8bd31c784427d23a0c161ef3a4c0b42cecc1cba Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 26 Feb 2019 07:36:02 +0800 Subject: [PATCH 008/122] =?UTF-8?q?Add=20=E6=AD=A3=E5=AE=98=20=E5=88=86?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/bazi.py | 54 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index b2c312d..5cfcb06 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -58,6 +58,14 @@ } gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", "庚":"金", "辛":"金", "壬":"水", "癸":"水"} + +guans = { + "甲":('辛',"酉"), "乙":('庚',"申",'巳'), "丙":('子',"癸"), "丁":('壬',"亥"), + "戊":('乙',"卯"), "己":('甲',"寅"), "庚":('丁',"午"), "辛":('丙',"寅",'巳'), + "壬":('己',"午",'未','丑'), "癸":('戊',"辰",'巳','戌'),} + + + gan_health = { "金":''' 秋天较走运 @@ -193,6 +201,13 @@ ("丁", "癸"): "相冲", } +chongs = { + "甲":"庚", "庚":"甲","乙":"辛", "辛":"乙","丙":"壬", "壬":"丙", "丁":"癸", + "癸":"丁", "子":"午", "午":"子", "丑":"未", "未":"丑", "寅":"申", "申":"寅", + "卯":"酉", "酉":"卯", "辰":"戌", "戌":"辰", "巳":"亥", "亥":"巳" +} + + zhi_6hes = { ("子", "丑"): "化土", ("寅", "亥"): "化木", @@ -262,6 +277,9 @@ ("子", "卯"): "子刑卯 卯刑子 无礼之刑", } +xings = {"巳":"寅", "申":"巳", "寅":"申", "丑":"未", "戌":"丑", "未":"戌", + "子":"卯", "卯":"子", '辰':'辰', '午':'午','酉':'酉', '亥':'亥'} + zhi_zixings = ['辰', '午', '酉', '亥'] description = ''' @@ -365,15 +383,35 @@ def check_subset(gans, db, desc): check_subset(zhis, zhi_haies, '地支相害') check_subset(zhis, zhi_xings, '地支相刑') -flag = True -for item in zhi_zixings: - if zhis.count(item) > 1: - if flag: - print("\n{}:".format("地支自刑")) - print("=========================") - flag = False - print(item) +print("\n\n正官:") +print("=========================") +print("财印两扶,柱中不见伤煞,行运引至官乡,大富大贵命也, 月令最佳") +print("大忌刑冲破害、伤官七煞、贪合忘官、劫财分福,为破格") +print("=========================") +guan_list = [] +for item in gans + zhis: + if item in guans[me]: + guan_list.append(item) +if guan_list: + print("恭喜,有天福贵人相助!", guan_list) +if len(guan_list) > 1: + print("正官偏多") +if len(guan_list) == 1: + guan_chongs = [] + for item in gans + zhis: + if item in chongs[guan_list[0]]: + guan_chongs.append(item) + if guan_chongs: + print("官冲",guan_list) + guan_xings = [] + l = list(gans + zhis) + l.remove(guan_list[0]) + for item in l: + if item in xings[guan_list[0]]: + guan_xings.append(item) + if guan_xings: + print("官刑",guan_xings) # 计算五行分数 http://www.131.com.tw/word/b3_2_14.htm From 609fd7ac8e05b78bce2282b2f618379ba60dbf3e Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 26 Feb 2019 15:54:53 +0800 Subject: [PATCH 009/122] devide bazi.py into 2 files! --- bazi/__pycache__/datas.cpython-36.pyc | Bin 0 -> 10503 bytes bazi/bazi.py | 343 ++++---------------------- bazi/datas.py | 294 ++++++++++++++++++++++ 3 files changed, 341 insertions(+), 296 deletions(-) create mode 100644 bazi/__pycache__/datas.cpython-36.pyc create mode 100644 bazi/datas.py diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9d1e4df51c7959f0f26cf8f371db4c6aa6c679a GIT binary patch literal 10503 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 literal 0 HcmV?d00001 diff --git a/bazi/bazi.py b/bazi/bazi.py index 5cfcb06..df4781f 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -11,277 +11,9 @@ import pprint from bidict import bidict - -Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] -ten_deities = { - '甲':bidict({'甲':'比肩', "乙":'劫财', "丙":'食神', "丁":'伤官', "戊":'偏财', - "己":'正财', "庚":'偏官', "辛":'正官', "壬":'偏印', "癸":'印', "子":'沐浴', - "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', - "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), - '乙':bidict({'甲':'劫财', "乙":'比肩', "丙":'伤官', "丁":'食神', "戊":'正财', - "己":'偏财', "庚":'正官', "辛":'偏官', "壬":'印',"癸":'偏印', "子":'病', - "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', - "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), - '丙':bidict({'丙':'比肩', "丁":'劫财', "戊":'食神', "己":'伤官', "庚":'偏财', - "辛":'正财', "壬":'偏官', "癸":'正官', "甲":'偏印', "乙":'印',"子":'胎', - "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', - "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), - '丁':bidict({'丙':'劫财', "丁":'比肩', "戊":'伤官', "己":'食神', "庚":'正财', - "辛":'偏财', "壬":'正官', "癸":'偏官', "甲":'印',"乙":'偏印', "子":'绝', - "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', - "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), - '戊':bidict({'戊':'比肩', "己":'劫财', "庚":'食神', "辛":'伤官', "壬":'偏财', - "癸":'正财', "甲":'偏官', "乙":'正官', "丙":'偏印', "丁":'印',"子":'胎', - "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', - "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), - '己':bidict({'戊':'劫财', "己":'比肩', "庚":'伤官', "辛":'食神', "壬":'正财', - "癸":'偏财', "甲":'正官', "乙":'偏官', "丙":'印',"丁":'偏印',"子":'绝', - "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', - "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), - '庚':bidict({'庚':'比肩', "辛":'劫财', "壬":'食神', "癸":'伤官', "甲":'偏财', - "乙":'正财', "丙":'偏官', "丁":'正官', "戊":'偏印', "己":'印',"子":'死', - "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', - "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), - '辛':bidict({'庚':'劫财', "辛":'比肩', "壬":'伤官', "癸":'食神', "甲":'正财', - "乙":'偏财', "丙":'正官', "丁":'偏官', "戊":'印', "己":'偏印', "子":'长生', - "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', - "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), - '壬':bidict({'壬':'比肩', "癸":'劫财', "甲":'食神', "乙":'伤官', "丙":'偏财', - "丁":'正财', "戊":'偏官', "己":'正官', "庚":'偏印', "辛":'印',"子":'帝旺', - "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', - "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), - '癸':bidict({'壬':'劫财', "癸":'比肩', "甲":'伤官', "乙":'食神', "丙":'正财', - "丁":'偏财', "戊":'正官', "己":'偏官', "庚":'印',"辛":'偏印', "子":'建', - "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', - "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), - -} -gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", - "庚":"金", "辛":"金", "壬":"水", "癸":"水"} - -guans = { - "甲":('辛',"酉"), "乙":('庚',"申",'巳'), "丙":('子',"癸"), "丁":('壬',"亥"), - "戊":('乙',"卯"), "己":('甲',"寅"), "庚":('丁',"午"), "辛":('丙',"寅",'巳'), - "壬":('己',"午",'未','丑'), "癸":('戊',"辰",'巳','戌'),} - - - -gan_health = { - "金":''' - 秋天较走运 - 申月、酉月、猴年和鸡年运气较好 - 下午三点至下午七点是吉时 - 西方是吉方 - 住朝西的房子较吉利 - 睡房在房子的西方较好 - 睡房的西方有窗字较顺利 - 金属床有利健康 - 办公桌朝西有助工作效率 - 吉祥颜色是白色 - 室内装璜用白色系统 - 穿衣用白色系列 - 开白色车子较平安易发财 - 勿伤心,注意呼吸系统、肺、肠, 筋 - 武术、击搏、兵器运动、健身房运动也很好 - 和金有关的工作较容易''', - "木":''' - 春天或清风徐来的天气较走运 - 卯月、寅月、兔年和虎年运气较好 - 上午三点至上午七点是吉时 - 东方是吉方 - 住朝东的房子较吉利 - 睡房在房子的东方较好 - 睡房的东方有窗字较顺利 - 木床有利健康 - 办公桌朝东有助工作效率 - 吉祥颜色是绿色 - 室内装璜用绿色系统 - 穿衣用绿色系列 - 开绿色车子较平安易发财 - 多喝点酸性饮料,忌生气,注意神精系统、肝、胆、头肩、肝胆 - 多打高尔夫球、公园散步、徒步树林等户外运动 - 和木有关的工作较容易。''', - "水":''' - 身体需要注意: 胫足、膀胱肾(比如结石) 多喝水 - 冬天或冷天气较走运 - 亥月、子月、猪年和鼠年运气较好 - 晚上九点至上午一点是吉时 - 北方较冷是吉方 - 住朝北的房子较吉利 - 睡房在房子的北方较好 - 睡房的北方有窗字较顺利 - 金属床或水床有利健康 - 办公桌朝北有助工作效率 - 吉祥颜色是黑色 - 室内装璜用黑色系统 - 穿衣用黑色系列,带珠宝也不错 - 开黑色车子较平安易发财 - 多喝水,注意肾脏系统 - 多做游泳、潜水、滑雪、钓鱼、溜冰等户外运动 - 和水有关的工作较容易。''', - "火":''' - 夏天或热天气较走运 - 午月、巳月、马年和蛇年运气较好 - 上午九点至下午一点是吉时 - 南方较热是吉方 - 住朝南的房子较吉利 - 睡房在房子的南方较好 - 睡房的南方有窗字较顺利 - 木床有利健康 - 办公桌朝南有助工作效率 - 吉祥颜色是红色 - 室内装璜用红色系统 - 穿衣用红色系列 - 开红色车子较平安易发财 - 要常笑,注意心脏系统、血液循环、眼睛、额齿 - 多做打篮球、网球、排球、骑单车等户外运动 - 和火有关的工作较容易''', - "土":''' - 春、夏、秋、冬四季交接之时段较走运 - 丑、辰、未、戌月和牛、龙、羊、狗年运气较好 - 上午二点、八点左右和下午二点、八点左右都是吉时 - 起居环境和气候不要太乾或太湿 - 睡房在房子的中间较好 - 办公桌靠房子的中间,有助工作效率 - 吉祥颜色是棕黄色 - 室内装璜用棕黄色系统 - 穿衣用棕黄色系列,带古玉很不错 - 开棕黄色车子较平安易发财 - 勿常担心事情,太多虑 - 吃些甜点,注意消化系统、脾、肌肉 - 多做园艺、露营、走路等户外运动。下棋、宗教场所都好 - 和土有关的工作较容易''', -} -Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] -zhi5 = {"子":{"壬":56,"癸":184}, - "丑":{"辛":40,"癸":56, "己":144}, - "寅":{"戊":40,"丙":40, "甲":160}, - "卯":{"甲":56, "乙":184}, - "辰":{"癸":40,"乙":56, "戊":144}, - "巳":{"庚":40,"戊":56, "丙":144}, - "午":{"丙":56, "丁":184}, - "未":{"甲":40,"丁":56, "己":144}, - "申":{"戊":40,"壬":40, "庚":160}, - "酉":{ "庚":56, "辛":184}, - "戌":{"丙":40,"辛":56, "戊":144}, - "亥":{"戊":40,"甲":40, "壬":160}} - -#zhi5 = {"子":{"癸":8}, - #"丑":{"辛":1,"癸":2, "己":5}, - #"寅":{"戊":1,"丙":2, "甲":5}, - #"卯":{"乙":8}, - #"辰":{"癸":1,"乙":2, "戊":5}, - #"巳":{"庚":1,"戊":2, "丙":5}, - #"午":{"己":3, "丁":5}, - #"未":{"乙":1,"丁":2, "己":5}, - #"申":{"戊":1,"壬":2, "庚":5}, - #"酉":{"辛":8}, - #"戌":{"丁":1,"辛":2, "戊":5}, - #"亥":{"甲":3, "壬":5}} - -ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] -numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] -Week = ["日", "一", "二", "三", "四", "五", "六"] -jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑","白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"] -ymc = ["十一", "十二", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十" ] -rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"] - -gan_hes = { - ("甲", "己"): "中正之合 化土", - ("乙", "庚"): "仁义之合 化金", - ("丙", "辛"): "丙义之合 化水", - ("丁", "壬"): "淫慝之合 化木", - ("戊", "癸"): "无情之合 化火", -} - -gan_chongs = { - ("甲", "庚"): "相冲", - ("乙", "辛"): "相冲", - ("丙", "壬"): "相冲", - ("丁", "癸"): "相冲", -} - -chongs = { - "甲":"庚", "庚":"甲","乙":"辛", "辛":"乙","丙":"壬", "壬":"丙", "丁":"癸", - "癸":"丁", "子":"午", "午":"子", "丑":"未", "未":"丑", "寅":"申", "申":"寅", - "卯":"酉", "酉":"卯", "辰":"戌", "戌":"辰", "巳":"亥", "亥":"巳" -} +from datas import * -zhi_6hes = { - ("子", "丑"): "化土", - ("寅", "亥"): "化木", - ("卯", "戌"): "化火", - ("辰", "酉"): "化金", - ("巳", "申"): "化水", - ("午", "未"): "化土", -} - -zhi_3hes = { - ("申", "子", "辰"): "化水", - ("巳", "酉", "丑"): "化金", - ("寅", "午", "戌"): "化火", - ("亥", "卯", "未"): "化木", -} - -zhi_huis = { - ("亥", "子", "丑"): "化水", - ("寅", "卯", "辰"): "化木", - ("巳", "午", "未"): "化火", - ("申", "酉", "戌"): "化金", -} - -zhi_chongs = { - ("子", "午"): "相冲", - ("丑", "未"): "相冲", - ("寅", "申"): "相冲", - ("卯", "酉"): "相冲", - ("辰", "戌"): "相冲", - ("巳", "亥"): "相冲", -} - -zhi_poes = { - ("子", "酉"): "相破", - ("午", "卯"): "相破", - ("巳", "申"): "相破", - ("寅", "亥"): "相破", - ("辰", "丑"): "相破", - ("戌", "未"): "相破", -} - -zhi_poes = { - ("子", "酉"): "相破", - ("午", "卯"): "相破", - ("巳", "申"): "相破", - ("寅", "亥"): "相破", - ("辰", "丑"): "相破", - ("戌", "未"): "相破", -} - -zhi_haies = { - ("子", "未"): "相害", - ("丑", "午"): "相害", - ("寅", "巳"): "相害", - ("卯", "辰"): "相害", - ("申", "亥"): "相害", - ("酉", "戌"): "相害", -} - -zhi_xings = { - ("寅", "巳"): "寅刑巳 无恩之刑", - ("巳", "申"): "巳刑申 无恩之刑", - ("申", "寅"): "申刑寅 无恩之刑", - ("未", "丑"): "未刑丑 持势之刑", - ("丑", "戌"): "丑刑戌 持势之刑", - ("戌", "未"): "戌刑未 持势之刑", - ("子", "卯"): "子刑卯 卯刑子 无礼之刑", -} - -xings = {"巳":"寅", "申":"巳", "寅":"申", "丑":"未", "戌":"丑", "未":"戌", - "子":"卯", "卯":"子", '辰':'辰', '午':'午','酉':'酉', '亥':'亥'} - -zhi_zixings = ['辰', '午', '酉', '亥'] - description = ''' ''' @@ -308,15 +40,15 @@ zhis = Gans(year=options.year[1], month=options.month[1], day=options.day[1], time=options.time[1]) else: - + lunar = sxtwl.Lunar(); if options.g: day = lunar.getDayBySolar( int(options.year), int(options.month), int(options.day)) else: day = lunar.getDayByLunar( - int(options.year), int(options.month), int(options.day), options.r) - + int(options.year), int(options.month), int(options.day), options.r) + gz = lunar.getShiGz(day.Lday2.tg, int(options.time)) # 计算甲干相合 @@ -325,13 +57,14 @@ zhis = Zhis(year=Zhi[day.Lyear2.dz], month=Zhi[day.Lmonth2.dz], day=Zhi[day.Lday2.dz], time=Zhi[gz.dz]) me = gans.day +zhus = [item for item in zip(gans, zhis)] if not options.b: print("\n日期:") print("======================================") print("公历:") print("\t{}年{}月{}日".format(day.y, day.m, day.d)) - + Lleap = "闰" if day.Lleap else "" print("农历:") print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) @@ -357,10 +90,10 @@ for gan in zhi5[item]: out = out + "{}{}{}{} ".format(gan, gan5[gan], zhi5[item][gan], ten_deities[me][gan]) print("{:<25s}".format(out), end=' ') - + print("\n\n") print("="*140) -pprint.pprint(dict(ten_deities[me])) +print(dict(ten_deities[me])) #print(ten_deities[me]) def check_subset(gans, db, desc): @@ -383,35 +116,60 @@ def check_subset(gans, db, desc): check_subset(zhis, zhi_haies, '地支相害') check_subset(zhis, zhi_xings, '地支相刑') -print("\n\n正官:") -print("=========================") -print("财印两扶,柱中不见伤煞,行运引至官乡,大富大贵命也, 月令最佳") -print("大忌刑冲破害、伤官七煞、贪合忘官、劫财分福,为破格") -print("=========================") + guan_list = [] for item in gans + zhis: if item in guans[me]: guan_list.append(item) if guan_list: - print("恭喜,有天福贵人相助!", guan_list) -if len(guan_list) > 1: - print("正官偏多") + print("\n\n正官:") + print("=========================") + print("财印两扶,柱中不见伤煞,行运引至官乡,大富大贵命也, 月令最佳") + print("大忌刑冲破害、伤官七煞、贪合忘官、劫财分福,为破格") + print("=========================") + print("恭喜,有贵人相助!", guan_list) + + # 检查天福贵人 + tmp_zhus = zhus[:2] + zhus[3:] + for item in lus: + if item in tmp_zhus: + print("天福贵人:主科名巍峨,官职尊崇,多掌丝纶文翰之美!") + + if len(guan_list) == 1: guan_chongs = [] + gui = guan_list[0] for item in gans + zhis: - if item in chongs[guan_list[0]]: + if item in chongs[gui]: guan_chongs.append(item) if guan_chongs: print("官冲",guan_list) - + guan_xings = [] l = list(gans + zhis) - l.remove(guan_list[0]) + l.remove(gui) for item in l: - if item in xings[guan_list[0]]: + if item in xings[gui]: guan_xings.append(item) if guan_xings: print("官刑",guan_xings) + +if zhus[2] in tianyuans: + print("\n\n天元坐禄:") + print("=========================") + print(''' + 金若遇火,有重权,防御刺史臣(如庚午、庚寅、庚戌、辛巳、辛未等日) + 水若遇土,入官局,可沾侍郎禄(如壬午、壬戌、癸巳、癸丑、癸未等日) + 木若遇金,主伤衰化煞,为权势若雷(如甲申、甲戌、乙巳、乙酉、乙丑等日) + 火若遇水,主兵权,为将镇三边(如丙申、丙子、丙辰、丁亥、丁丑等日) + 土若遇木,为正禄八座三台福(如戊寅、戊辰、己卯、己未、己亥等日) + 此即白虎持世等格要,日主与官贵相停,偏枯则不成造化,大忌刑冲破害,伤损贵气,不成格矣。 + 如庚午日,坐丁官,喜见甲乙财生官,戊己印生身;忌丙煞杂官,癸水伤官,子冲破午。余干例推。 + 如果日柱的干支本身已构成官星,就不大忌讳冲破。 + ''') + + print("=========================") + print(zhus[2]) # 计算五行分数 http://www.131.com.tw/word/b3_2_14.htm @@ -419,7 +177,7 @@ def check_subset(gans, db, desc): for item in gans: scores[gan5[item]] += 150 - + for item in list(zhis) + [zhis.month]: for gan in zhi5[item]: scores[gan5[gan]] += zhi5[item][gan] @@ -430,11 +188,4 @@ def check_subset(gans, db, desc): short = min(scores, key=scores.get) print("\n\n五行缺{}的建议".format(short)) print("=========================") -print("{}".format(gan_health[short])) - - - - - - - +print("{}".format(gan_health[short])) \ No newline at end of file diff --git a/bazi/datas.py b/bazi/datas.py new file mode 100644 index 0000000..e473248 --- /dev/null +++ b/bazi/datas.py @@ -0,0 +1,294 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# CreateDate: 2019-2-21 + +import collections +from bidict import bidict + +Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] +ten_deities = { + '甲':bidict({'甲':'比肩', "乙":'劫财', "丙":'食神', "丁":'伤官', "戊":'偏财', + "己":'正财', "庚":'偏官', "辛":'正官', "壬":'偏印', "癸":'印', "子":'沐浴', + "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', + "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), + '乙':bidict({'甲':'劫财', "乙":'比肩', "丙":'伤官', "丁":'食神', "戊":'正财', + "己":'偏财', "庚":'正官', "辛":'偏官', "壬":'印',"癸":'偏印', "子":'病', + "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', + "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), + '丙':bidict({'丙':'比肩', "丁":'劫财', "戊":'食神', "己":'伤官', "庚":'偏财', + "辛":'正财', "壬":'偏官', "癸":'正官', "甲":'偏印', "乙":'印',"子":'胎', + "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), + '丁':bidict({'丙':'劫财', "丁":'比肩', "戊":'伤官', "己":'食神', "庚":'正财', + "辛":'偏财', "壬":'正官', "癸":'偏官', "甲":'印',"乙":'偏印', "子":'绝', + "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), + '戊':bidict({'戊':'比肩', "己":'劫财', "庚":'食神', "辛":'伤官', "壬":'偏财', + "癸":'正财', "甲":'偏官', "乙":'正官', "丙":'偏印', "丁":'印',"子":'胎', + "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), + '己':bidict({'戊':'劫财', "己":'比肩', "庚":'伤官', "辛":'食神', "壬":'正财', + "癸":'偏财', "甲":'正官', "乙":'偏官', "丙":'印',"丁":'偏印',"子":'绝', + "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), + '庚':bidict({'庚':'比肩', "辛":'劫财', "壬":'食神', "癸":'伤官', "甲":'偏财', + "乙":'正财', "丙":'偏官', "丁":'正官', "戊":'偏印', "己":'印',"子":'死', + "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', + "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), + '辛':bidict({'庚':'劫财', "辛":'比肩', "壬":'伤官', "癸":'食神', "甲":'正财', + "乙":'偏财', "丙":'正官', "丁":'偏官', "戊":'印', "己":'偏印', "子":'长生', + "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', + "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), + '壬':bidict({'壬':'比肩', "癸":'劫财', "甲":'食神', "乙":'伤官', "丙":'偏财', + "丁":'正财', "戊":'偏官', "己":'正官', "庚":'偏印', "辛":'印',"子":'帝旺', + "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', + "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), + '癸':bidict({'壬':'劫财', "癸":'比肩', "甲":'伤官', "乙":'食神', "丙":'正财', + "丁":'偏财', "戊":'正官', "己":'偏官', "庚":'印',"辛":'偏印', "子":'建', + "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', + "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), + +} +gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", + "庚":"金", "辛":"金", "壬":"水", "癸":"水"} + +guans = { + "甲":('辛',"酉"), "乙":('庚',"申",'巳'), "丙":('子',"癸"), "丁":('壬',"亥"), + "戊":('乙',"卯"), "己":('甲',"寅"), "庚":('丁',"午"), "辛":('丙',"寅",'巳'), + "壬":('己',"午",'未','丑'), "癸":('戊',"辰",'巳','戌'),} + +lus = [("甲", '寅'), ("乙","卯"), ("丙","巳"), ("丁","午"), ("戊","巳"), + ("己","午"), ("庚", "申"), ("辛","酉"), ("壬", "亥"), ("癸","子")] + +tianyuans = [ + ("甲","巳"), ("甲","申"), ("甲","酉"), ("甲","丑"), ("甲","戌"), + ("乙","巳"), ("乙","申"), ("乙","酉"), ("乙","丑"), ("乙","戌"), + ("丙","亥"), ("丙","申"), ("丙","丑"), ("丙","辰"), ("丙","子"), ("丙","亥"), + ("丁","亥"), ("丁","申"), ("丁","丑"), ("丁","辰"), ("丙","子"), ("丙","亥"), + ("戊","寅"), ("戊","卯"), ("戊","未"), ("戊","亥"), ("戊","辰"), + ("己","寅"), ("己","卯"), ("己","未"), ("己","亥"), ("己","辰"), + ("庚","寅"), ("庚","未"), ("庚","戌"), ("庚","午"), ("庚","巳"), + ("辛","寅"), ("辛","未"), ("辛","戌"), ("辛","午"), ("辛","巳"), + ("壬","寅"), ("壬","辰"), ("壬","巳"), ("壬","申"), ("壬","戌"), ("壬","亥"), ("壬","丑"), ("壬","未"), ("壬","午"), + ("癸","寅"), ("癸","辰"), ("癸","巳"), ("癸","申"), ("癸","戌"), ("癸","亥"), ("癸","丑"), ("癸","未"), ("癸","午"), +] + + +gan_health = { + "金":''' + 秋天较走运 + 申月、酉月、猴年和鸡年运气较好 + 下午三点至下午七点是吉时 + 西方是吉方 + 住朝西的房子较吉利 + 睡房在房子的西方较好 + 睡房的西方有窗字较顺利 + 金属床有利健康 + 办公桌朝西有助工作效率 + 吉祥颜色是白色 + 室内装璜用白色系统 + 穿衣用白色系列 + 开白色车子较平安易发财 + 勿伤心,注意呼吸系统、肺、肠, 筋 + 武术、击搏、兵器运动、健身房运动也很好 + 和金有关的工作较容易''', + "木":''' + 春天或清风徐来的天气较走运 + 卯月、寅月、兔年和虎年运气较好 + 上午三点至上午七点是吉时 + 东方是吉方 + 住朝东的房子较吉利 + 睡房在房子的东方较好 + 睡房的东方有窗字较顺利 + 木床有利健康 + 办公桌朝东有助工作效率 + 吉祥颜色是绿色 + 室内装璜用绿色系统 + 穿衣用绿色系列 + 开绿色车子较平安易发财 + 多喝点酸性饮料,忌生气,注意神精系统、肝、胆、头肩、肝胆 + 多打高尔夫球、公园散步、徒步树林等户外运动 + 和木有关的工作较容易。''', + "水":''' + 身体需要注意: 胫足、膀胱肾(比如结石) 多喝水 + 冬天或冷天气较走运 + 亥月、子月、猪年和鼠年运气较好 + 晚上九点至上午一点是吉时 + 北方较冷是吉方 + 住朝北的房子较吉利 + 睡房在房子的北方较好 + 睡房的北方有窗字较顺利 + 金属床或水床有利健康 + 办公桌朝北有助工作效率 + 吉祥颜色是黑色 + 室内装璜用黑色系统 + 穿衣用黑色系列,带珠宝也不错 + 开黑色车子较平安易发财 + 多喝水,注意肾脏系统 + 多做游泳、潜水、滑雪、钓鱼、溜冰等户外运动 + 和水有关的工作较容易。''', + "火":''' + 夏天或热天气较走运 + 午月、巳月、马年和蛇年运气较好 + 上午九点至下午一点是吉时 + 南方较热是吉方 + 住朝南的房子较吉利 + 睡房在房子的南方较好 + 睡房的南方有窗字较顺利 + 木床有利健康 + 办公桌朝南有助工作效率 + 吉祥颜色是红色 + 室内装璜用红色系统 + 穿衣用红色系列 + 开红色车子较平安易发财 + 要常笑,注意心脏系统、血液循环、眼睛、额齿 + 多做打篮球、网球、排球、骑单车等户外运动 + 和火有关的工作较容易''', + "土":''' + 春、夏、秋、冬四季交接之时段较走运 + 丑、辰、未、戌月和牛、龙、羊、狗年运气较好 + 上午二点、八点左右和下午二点、八点左右都是吉时 + 起居环境和气候不要太乾或太湿 + 睡房在房子的中间较好 + 办公桌靠房子的中间,有助工作效率 + 吉祥颜色是棕黄色 + 室内装璜用棕黄色系统 + 穿衣用棕黄色系列,带古玉很不错 + 开棕黄色车子较平安易发财 + 勿常担心事情,太多虑 + 吃些甜点,注意消化系统、脾、肌肉 + 多做园艺、露营、走路等户外运动。下棋、宗教场所都好 + 和土有关的工作较容易''', +} +Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] +zhi5 = {"子":{"壬":56,"癸":184}, + "丑":{"辛":40,"癸":56, "己":144}, + "寅":{"戊":40,"丙":40, "甲":160}, + "卯":{"甲":56, "乙":184}, + "辰":{"癸":40,"乙":56, "戊":144}, + "巳":{"庚":40,"戊":56, "丙":144}, + "午":{"己":56, "丁":184}, + "未":{"甲":40,"丁":56, "己":144}, + "申":{"戊":40,"壬":40, "庚":160}, + "酉":{ "庚":56, "辛":184}, + "戌":{"丙":40,"辛":56, "戊":144}, + "亥":{"戊":40,"甲":40, "壬":160}} + +#zhi5 = {"子":{"癸":8}, + #"丑":{"辛":1,"癸":2, "己":5}, + #"寅":{"戊":1,"丙":2, "甲":5}, + #"卯":{"乙":8}, + #"辰":{"癸":1,"乙":2, "戊":5}, + #"巳":{"庚":1,"戊":2, "丙":5}, + #"午":{"己":3, "丁":5}, + #"未":{"乙":1,"丁":2, "己":5}, + #"申":{"戊":1,"壬":2, "庚":5}, + #"酉":{"辛":8}, + #"戌":{"丁":1,"辛":2, "戊":5}, + #"亥":{"甲":3, "壬":5}} + +ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] +numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] +Week = ["日", "一", "二", "三", "四", "五", "六"] +jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑","白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"] +ymc = ["十一", "十二", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十" ] +rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"] + +gan_hes = { + ("甲", "己"): "中正之合 化土", + ("乙", "庚"): "仁义之合 化金", + ("丙", "辛"): "丙义之合 化水", + ("丁", "壬"): "淫慝之合 化木", + ("戊", "癸"): "无情之合 化火", +} + +gan_chongs = { + ("甲", "庚"): "相冲", + ("乙", "辛"): "相冲", + ("丙", "壬"): "相冲", + ("丁", "癸"): "相冲", +} + +chongs = { + "甲":"庚", "庚":"甲","乙":"辛", "辛":"乙","丙":"壬", "壬":"丙", "丁":"癸", + "癸":"丁", "子":"午", "午":"子", "丑":"未", "未":"丑", "寅":"申", "申":"寅", + "卯":"酉", "酉":"卯", "辰":"戌", "戌":"辰", "巳":"亥", "亥":"巳" +} + + +zhi_6hes = { + ("子", "丑"): "化土", + ("寅", "亥"): "化木", + ("卯", "戌"): "化火", + ("辰", "酉"): "化金", + ("巳", "申"): "化水", + ("午", "未"): "化土", +} + +zhi_3hes = { + ("申", "子", "辰"): "化水", + ("巳", "酉", "丑"): "化金", + ("寅", "午", "戌"): "化火", + ("亥", "卯", "未"): "化木", +} + +zhi_huis = { + ("亥", "子", "丑"): "化水", + ("寅", "卯", "辰"): "化木", + ("巳", "午", "未"): "化火", + ("申", "酉", "戌"): "化金", +} + +zhi_chongs = { + ("子", "午"): "相冲", + ("丑", "未"): "相冲", + ("寅", "申"): "相冲", + ("卯", "酉"): "相冲", + ("辰", "戌"): "相冲", + ("巳", "亥"): "相冲", +} + +zhi_poes = { + ("子", "酉"): "相破", + ("午", "卯"): "相破", + ("巳", "申"): "相破", + ("寅", "亥"): "相破", + ("辰", "丑"): "相破", + ("戌", "未"): "相破", +} + +zhi_poes = { + ("子", "酉"): "相破", + ("午", "卯"): "相破", + ("巳", "申"): "相破", + ("寅", "亥"): "相破", + ("辰", "丑"): "相破", + ("戌", "未"): "相破", +} + +zhi_haies = { + ("子", "未"): "相害", + ("丑", "午"): "相害", + ("寅", "巳"): "相害", + ("卯", "辰"): "相害", + ("申", "亥"): "相害", + ("酉", "戌"): "相害", +} + +zhi_xings = { + ("寅", "巳"): "寅刑巳 无恩之刑", + ("巳", "申"): "巳刑申 无恩之刑", + ("申", "寅"): "申刑寅 无恩之刑", + ("未", "丑"): "未刑丑 持势之刑", + ("丑", "戌"): "丑刑戌 持势之刑", + ("戌", "未"): "戌刑未 持势之刑", + ("子", "卯"): "子刑卯 卯刑子 无礼之刑", +} + +xings = {"巳":"寅", "申":"巳", "寅":"申", "丑":"未", "戌":"丑", "未":"戌", + "子":"卯", "卯":"子", '辰':'辰', '午':'午','酉':'酉', '亥':'亥'} + +zhi_zixings = ['辰', '午', '酉', '亥'] + + From 52d7fea0163fae266e3906257096880d5303640b Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 26 Feb 2019 18:10:00 +0800 Subject: [PATCH 010/122] =?UTF-8?q?=E5=A4=A9=E7=A6=8F=E8=B4=B5=E4=BA=BA=20?= =?UTF-8?q?bugs=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/__pycache__/datas.cpython-36.pyc | Bin 10503 -> 10375 bytes bazi/bazi.py | 27 +++++++++++++++++--------- bazi/datas.py | 4 ++-- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc index e9d1e4df51c7959f0f26cf8f371db4c6aa6c679a..d10ac14f0f5a183b1e0c24d8fa8f288cc8f72f62 100644 GIT binary patch delta 551 zcmYk#OD_Xa7zW^;b__;~7OnfOXkBVdJ7Pm(VPVU%u~6PdXQ36X2o>yXC1Yvj*0kzc z{($=>@h5EU?eO^)VouI8=bZP=Ia`xk6W)-+p?pe9Q)%5|dAI!gMrb`sGdXtQU9<*t zgfM_Xo+|ngga-ev5|(j;TioFu4|v2Ap7DZLGjByfw`~d?U)aMp_O}HrI3NWMNh^+w zqOg-zHe^VNEn;Q!LmJvBMwZS?kRwZROe)BeWjG=2$Qp9EnpO_pmvdIZy-MT^DO^LD zlQS3JQN>v`@|3wLtKqlYtcR^->)84YWat486&r9$HnL4@Guy(p;*@%|)M(>b89X0i08@9~Y#GOL71OQo|J)#5EZ*$K^qx7uMzB z`a-a6P43auSYke^M&ekEE~~Q%MAe0rR4fq>L>7!dDw;InbLvcF)lkhhU)p0A0YtI delta 688 zcmYk3%}x_h7>0W~?E!|i&{8PHzhbciXjQ}lA{Z8~Np!)YnGO09oWuZW%R*h$9b1yQ z1OEt!R2;nl6o2o)m5KMEzULcaI+ORA=bZ1&Ig8o4vvs#PnM~UG#Y7p4i7|0TGaW(6da7n< zop?re;W=sJ1=)?4WCE|ecr{H+Vuwr#dxX9I&)9S`ja}|%ut)acHJQae*^f8m0CqiH z&C+tR9+X*LdPCUrV%2`mPRZ=FoN-2GXR*)O0B7gqu7Yq_cwSf(jx@2u3vw)8zyVnj zI>J%mm~b2i>%Xlj6 z*v6BgcN^74jPZmiV3wN>}t@?+2S f7o8_LTcs>p*($-;e9fCtCI6Q*VQHoP>}dTT_>aI@ diff --git a/bazi/bazi.py b/bazi/bazi.py index df4781f..3e5eea1 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -116,7 +116,7 @@ def check_subset(gans, db, desc): check_subset(zhis, zhi_haies, '地支相害') check_subset(zhis, zhi_xings, '地支相刑') - + guan_list = [] for item in gans + zhis: if item in guans[me]: @@ -130,12 +130,21 @@ def check_subset(gans, db, desc): print("恭喜,有贵人相助!", guan_list) # 检查天福贵人 - tmp_zhus = zhus[:2] + zhus[3:] - for item in lus: - if item in tmp_zhus: - print("天福贵人:主科名巍峨,官职尊崇,多掌丝纶文翰之美!") - - + if lus[me] in guan_list: + print("天福贵人:主科名巍峨,官职尊崇,多掌丝纶文翰之美!") + + # 岁德正官 + if gans[0] in guan_list: + print("大岁德正官!") + if zhis[0] in guan_list: + print("小岁德正官!") + # 时上正官 + if gans[3] in guan_list: + print("大时上正官!") + if zhis[3] in guan_list: + print("小时上正官!") + + if len(guan_list) == 1: guan_chongs = [] gui = guan_list[0] @@ -153,7 +162,7 @@ def check_subset(gans, db, desc): guan_xings.append(item) if guan_xings: print("官刑",guan_xings) - + if zhus[2] in tianyuans: print("\n\n天元坐禄:") print("=========================") @@ -188,4 +197,4 @@ def check_subset(gans, db, desc): short = min(scores, key=scores.get) print("\n\n五行缺{}的建议".format(short)) print("=========================") -print("{}".format(gan_health[short])) \ No newline at end of file +print("{}".format(gan_health[short])) diff --git a/bazi/datas.py b/bazi/datas.py index e473248..d3801f2 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -58,8 +58,8 @@ "戊":('乙',"卯"), "己":('甲',"寅"), "庚":('丁',"午"), "辛":('丙',"寅",'巳'), "壬":('己',"午",'未','丑'), "癸":('戊',"辰",'巳','戌'),} -lus = [("甲", '寅'), ("乙","卯"), ("丙","巳"), ("丁","午"), ("戊","巳"), - ("己","午"), ("庚", "申"), ("辛","酉"), ("壬", "亥"), ("癸","子")] +lus = {"甲":'寅', "乙":"卯", "丙":"巳", "丁":"午", "戊":"巳", "己":"午", + "庚": "申", "辛":"酉", "壬": "亥", "癸":"子"} tianyuans = [ ("甲","巳"), ("甲","申"), ("甲","酉"), ("甲","丑"), ("甲","戌"), From e6b7d92c8e375cfdf1e9ab09380056fc383705b9 Mon Sep 17 00:00:00 2001 From: andrew Date: Wed, 27 Feb 2019 07:41:28 +0800 Subject: [PATCH 011/122] =?UTF-8?q?Add=20=E8=87=AA=E5=B7=B1=E6=97=A5?= =?UTF-8?q?=E5=B9=B2=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/__pycache__/datas.cpython-36.pyc | Bin 10375 -> 11423 bytes bazi/bazi.py | 1 + bazi/datas.py | 14 ++++++++++++++ 3 files changed, 15 insertions(+) diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc index d10ac14f0f5a183b1e0c24d8fa8f288cc8f72f62..ff13fc7b1723189710bcb3b1bef61a4efa979013 100644 GIT binary patch delta 2102 zcmZuyYj;yc6m3eI7AT5P5CQc9N()>-K(J6y6!HB6eBc#DbZe}F%A=qB5Q+^++NMoS zNgHw@1zK7jZ5sMY)6)8WzuzDH;96$pCVxWRcdT73mz^~`GqcZ}b7r4&SH0U}PcK?C zZQ7K#zN*~yZdp#wA30b2ZQ^<}=fMMsMVoWoOR)?(mSY80;ufsJYLuE&j6AI2xRqlq z$2yMNIBX^#@8bh}h>!3wKEbE>44>l*#W-<0HemzqP;))Xuo2~oDZrQb3SZ+Je2ee! zJ$}HC_z6Gb7yKIfE%yO8{={EF2XZ(aoVlEnIP*C3Ih~vZu8l?^?#5Q!gL`ow?l<#| z$#j3G3VN3cxfyoQE!gNPGN#}GJcx(PTs+LxBY4!D#MQ%i4BNP}x$P62dxs)zv&YBD zCnm@zCoVoU&h4Dwo}S(%HMQ87hJ#m9t^(t#P-)(LH;&+KRKtU#@WKZ_YEbK%V_c0o1W^A!zKV?L zXh0B+cn2Xg;TXbbMvJnK;5ec%aRMh1Ln}_Jw` zWOVUo3c86?5hoU*ry}2&!PPV*h*v4RTH$mgD)Nk(n2brhlgAtRw0E*0%CVW1TF+XQ zu|>AvF1E%7Tr!J|V*0oSy~G*lBhExWu^0oyS#AvSXEu5(oW?A!u2uUvio8x4&P5+X z&L%fcar2dv>lJqc2FP7Y?nafKrf`A6g$frbyoqT$jXAWt8A;+|g(XC{1Ep%SMB!2- zX?Pt?mZ`n2aJj-23Rfz;Wx{S1hG@N7;TnavDqO2@9fs&{E-h|DidcqW;(Ck_H{f#6 zaW{n<nzB3 z@8cJrjSgluj}%d&*_FLx$UA_=51)NMBHR21KOukHbf#*_loTM4(x; zHes~40hQWduVz(Ukj%$S}YX%pQom2W8BMziKgO(YWkW=4Zd z5Wjd;?NHQDk6v2AluZ_A#hbc*7cF~+;%(U!N}PTqJ|F?WG}X_t`GHLZ)eZx6|T_H3rXm19rGrt(F;$rc>?|AIuJ<=kwXa4Gg1GyABbr z8&|?UOh%Y2C8Af$mtZ({w;f>tBe1cu<|SKL*?ZZJL-jP-HOvRd&hxUrs`52Ek7y@( zf2P{6G0m(QR#oc?YTIc?rR@)=pXx=D%!LigsA4doYxc`ijhRz*bilPW+#vhwr9Z$% zVFLfWm>-GGESQ#EvY@~Bz|{C$#|@!{i*GJ0bnSV4_nt$CLR%OAA}ANzIg5q delta 1021 zcmZvb*HcqL6o(VINgxCfML@)YpdyJt07a}QioN$0#qw#4T^XNz$c(+WYsDybMG*`3 z-bHwilU*KD-IqKGzeGTypG0odYb+k|m?u2t8P9paOJ4C>6&EEGQ%HXu1>{piP!%_C zc*{H9^MQ{v^NG)Vv72LvgoYRogBZ*ZhBA!dQJ0C6MWtG5pcWcHOQ|x7LOv5uIU^Vu zjiExaQH+kpN>)K7V>|5ZXBlgLU|v6?lkWgY9; zV6l-Jdzh6O38kBMY+)|rna*v|p=ALI~+IfBhmj&Yn5oa7X> zoF>W{&QixY&WF02_Wa@kzqxqGiGxc*CzpjWTnW2OBw5l}t_m%sOX=on*fJf67tJe5 z0xo>GrNu!8NS6wvPx;dHG6qVs3%M3eF&(9bhk9Wg*M;%i5PE44CU8^eqdx35DUv1X zyd4b@nIx&PJ=f)von)S@Vh1hKQMD8rL`xN|lWs3nnWjuvc2;J{w%sO8d|hZ1W-7ZX zyD7UXd(bGpba6zo^hHl)wlYWAOWC{4*oRwU&sFwS<|+Nk0Jo%IXL0o7wlJSN!UFCJ z3uzJtxhE{*zOa}FVUNj>Gb{{j zT9ee6;p}Q>=Jm2C Date: Thu, 28 Feb 2019 17:26:05 +0800 Subject: [PATCH 012/122] =?UTF-8?q?modify=20bazi.py=20format=20=E6=AD=A3?= =?UTF-8?q?=E5=AE=98=20to=20=E5=AE=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/__pycache__/datas.cpython-36.pyc | Bin 11423 -> 12849 bytes bazi/bazi.py | 71 +++++++---- bazi/datas.py | 165 ++++++++++++++------------ 3 files changed, 138 insertions(+), 98 deletions(-) diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc index ff13fc7b1723189710bcb3b1bef61a4efa979013..39ea606656ca4bb846a59c8955a696a9521ab973 100644 GIT binary patch delta 4220 zcmZu!X;@U}6=r7GgaH&quo0amZfMk6le!B6qJq&xqm2{VL_G#cjhaE4XqN#A0t$#; z6wy%-ut-n=2W1!m)1+(KbZ^?&z0SQe)AdjN)Bb4RbM7bdr13uId}q#gmiH|8^4PMY zk7g`RNQg@=c%yJ6DzQhTJ4E< zMo}hZ;rStbKx-+F)_G!Zt_S^yevG?p(X62jw1$2{KgF3Nnmo$K^E3K6EHXv29#S^_ zf_{l;xhl>YDxeSPS5)AJJBQAPaVGtmK7vV>XmTalJ^Bsq){CY9P8;aA^gE>5Aet-y z%cI}ZA7GI$nrr~fr9aZ2pkFH*29`sAru)cLAexOHyEB@e!Ly0hZKBP1p2hPVo;jX4 zXAA{MCxe0%qA>l1{z`wNzspT50%Rd|rqCLs$U$268K>E8x$XuF#e&9x;z02rJ17B^ z2ucEt2TcGagC>F|fl@$|L8+iL&=k<8K#zf@g3>|LK+{1E(5FFWrf; zB^ppZ7#LY}%)o37Dyx2_-q>B`OhIAcm@rE&n16xl#?es zkM4j!DSW>01$3u4(wRczh?^Hl@f3xjL}Rt`WrKNF^RR6E^6<6~c_uk|M;6jB_-AMY zd=cFR|17-&zL>t*;I`0HG+Z3*{*2j52T7soi$(Hs8k@SDCKJ<69)O&(3j zp&ww~rm3GfMUl?wWZ4=qXS;Sj`oIz!zIyuc?ovL(?JaT!hB`{4SzmrK)ZZqmho^C| zOn!T}#3V&o_G`QBuX{hVH(A}g*uL$m(bwuQuD9#8O%9{!wtm(V>MRd7`vU$e{~W3f z^=g5^6Gm^pK73m5=rnE(K&hXsHud_++Hl{H;qxI3>+eRj|8NZ|@GawBIi~ zTDlx*j25qc)8`2IP6hmaWI+nuJaWwfs>YOdGM_;3sBaC<$B9s1Ssu%{~E zs|r`umcEEs!GXlajR=?4WwuJgFGko72bSBh)i;G=>1fjYb!#j*(J;vEV?%uV_4&V%zwdw8G zjOx1kWzt`_|B7Dc4UaUBww9~S;%YlO!(DeBfPexp5PhTx{=mX@UZ~P*&xVHYz>$;t z>*2-F>MBqml;N(y(pR|5iebIA6$Ldp^u9~M@@}NnJuUFjD{qHtZid{qI>L9}l9^X` zVIW9>%b=%)AyxVHYVgb9u4}OQmQ>OP} zBo~5>Ui67;?(OGEV57_$FmT<|>()EE0{#xe+grMjWAymLr(1X&p(}SCydXW5dPB{l zyr)~jzIM!2_cwChY^kwRuZK@HhENauh#EY945Q#Jt0@ck>H@z0z@S(F0Z*W=$ALLx zioyJf&S29S!EYSBX593mS6*NWH(@E77^(>ZeM9JgzgEBA1T?$}SlHfv<3wNh!T_u@ z;I!pzDnN_&55y7p#zlJ=jec5O=f;;1kO(l(|~u>}U3wY}-{=Gi1!z*jD3Xyk&N zco8$KA_W^2^7d=q<XrR008^^pZ>^5IrM-y(CZ|Bk`
gfvohr?dgUu}ik37pH9=WQ70FuW%+zh%W8{@; z)m%kZmLjV-BC8oo1m!zgEaHfqsI|;YU8JIkMj@AGsi}*s)==b$+J9%JY71tiX^+oJ zo1*qg2CQn86-d*z&Uzw2-HK+ic6V0lB85xFt?Wfsb%?A`h@7mQgqMmVTcdD^tfGmm zqKTZOZJwPvMfF28YE?x}(28ce+>f?ay=$rwqdSK-$yTUQaeP@0=;gJLkT!E)B$%MF znOh{UfB>+W>nbi%nN9Y5xw+gb2Zmhe8yvCJG@fE(tH@Jvz@g2U$54eOM z@e_W=FZdOg(Sp`^w4ogx=)`aM9e?18an?Rr_Z4c6nRIi7DM}UAkGUQ&zW&?v5_qo#IzK6L*Pn zc9(LFC}%<=c6ZRF#b7S(!M(T-^H75MSOB0D_rpgexs3h}w~l}>MvKK#`0)T9#6wtw zGGCO|9m`OGhp`-wUn;W;_oATkry2#8zx0dwnCSu^l@Q#7o$T8tlT$*o|83!Ct(ASMeHN z$3E=$_0tlntcb<|!frT7=)@ty7}OEEaMVG@oJ_C$j}QcEJ{ z;e9geQrNB+8YyK@()DItAC8gAy1qC{IuGgkQF*!*{kh5kjA@Jm83$3_ky5LhSnP?)r6tc+T{V>LC#^H=!#t~h1IXF(%BNgfx#hYBl(TrnooC5YDld(8K zn1_>u<8X>FA8!&Cpqa1`rwPa7j6X{2O+Cyfnmkuml!i*m)J?%a5{FY&G^$jblzWf6?g4AUfZ`c@Y;Gz)`L~NZ#l8oly9sv z*SfW`ujI8YxR2MCrp>%|G#@tQl^YsTk{VrU^pDKa*+h_Gt56ABYY*_+UftB0u5?w# zr2(mq&RxWfs{?u`m}c!;j<8wF@oK}JmTOE;ORkw7Q5vqeYqjtskL+f*Hr z@Y+_nUNpp55{gPi7@OR_hI47>9lDb;2Vw~_?165IcUKUn1hzoD;x3cND4t;Q2*ndk zu8tMxVRCg>0k`7zfFmR~gGB_QL&`vsVm*~vL_#1+Z9EE8(m=AIXL_coA}Bw{=Hi62 zlkjBIhHH^}nTs#;Sfeh}lOvW~k(_|JSTdK$%sob2mM2Fn`Ap$lyjU(?%-Ks9OFor! zg}HQ#xjH|cj(NDf>H^8RQR2&7e3^?cbMa*^zQ&cT)D$@{Unk#&&Ai$;W8koXx@h_0 zMax`z$oDMSnM-8m;Wp9-mP<_LQWbOQ4|Azp=Zz#*vlSX1=8}xLBx5egm`gI|l8m_| zV=l>x|9302zYt zeuUeHm(CZal=RNjjF{JC<0W+Q;m3&Kb8rv(8mqmTMzi-~Zk}>fa5cxfuzXRex1P diff --git a/bazi/bazi.py b/bazi/bazi.py index a185d67..70d4c00 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -13,7 +13,6 @@ from datas import * - description = ''' ''' @@ -27,6 +26,7 @@ parser.add_argument('-b', action="store_true", default=False, help=u'直接输入八字') parser.add_argument('-g', action="store_true", default=False, help=u'是否采用公历') parser.add_argument('-r', action="store_true", default=False, help=u'是否为闰月,仅仅使用于农历') +parser.add_argument('-n', action="store_true", default=False, help=u'是否为女,默认为男') parser.add_argument('--version', action='version', version='%(prog)s 0.1 Rongzhong xu 2019 02 21') options = parser.parse_args() @@ -70,30 +70,31 @@ print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) print("\n八字: 同义词:七杀|偏官 偏印|枭神 阳刃|帝旺(阳干)|冠带(阴干)") -print("="*140) -print("{:<30s}{:<30s}{:<30s}{:<30s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) -print("-"*140) -print("{:>11s}-{:<19s}{:>11s}-{:<19s}{:>11s}-{:<19s}{:>11s}-{:<19s}".format( - gans.year, '{} [{}]'.format(gan5[gans.year], ten_deities[me][gans.year]), - gans.month, '{} [{}]'.format(gan5[gans.month], ten_deities[me][gans.month]), - me, '{} [{}]'.format(gan5[me], '自己'), - gans.time, '{} [{}]'.format(gan5[gans.time], ten_deities[me][gans.time]), +print("="*150) +print("{:^30s}{:^30s}{:^30s}{:^30s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) +print("-"*150) +print("{:^32s}{:^32s}{:^32s}{:^32s}".format( + gans.year + "--" + '{} [{}]'.format(gan5[gans.year], ten_deities[me][gans.year]), + gans.month + "--" + '{} [{}]'.format(gan5[gans.month], ten_deities[me][gans.month]), + me + "--" + '{} [{}]'.format(gan5[me], '自己'), + gans.time + "--" + '{} [{}]'.format(gan5[gans.time], ten_deities[me][gans.time]), )) -print("{:>11s}--{:<19s}{:>12s}--{:<19s}{:>12s}--{:<19s}{:>12s}--{:<19s}".format( - zhis.year, ten_deities[me][zhis.year], - zhis.month, ten_deities[me][zhis.month], - zhis.day, ten_deities[me][zhis.day], - zhis.time, ten_deities[me][zhis.time], +print("{:^32s}{:^32s}{:^32s}{:^32s}".format( + zhis.year + "--" + ten_deities[me][zhis.year], + zhis.month + "--" + ten_deities[me][zhis.month], + zhis.day + "--" + ten_deities[me][zhis.day], + zhis.time + "--" + ten_deities[me][zhis.time], )) for item in zhis: out = '' for gan in zhi5[item]: out = out + "{}{}{}{} ".format(gan, gan5[gan], zhi5[item][gan], ten_deities[me][gan]) - print("{:<25s}".format(out), end=' ') + print("{:^28s}".format(out), end=' ') print("\n\n") -print("="*140) -print("你属:", me, "特点:--", gan_atts[me]) +print("="*150) +print("你属:", me, "特点:--", gan_desc[me],"\n") +print("年份:", zhis[0], "特点:--", zhi_desc[zhis[0]],"\n") print(dict(ten_deities[me])) #print(ten_deities[me]) @@ -115,7 +116,34 @@ def check_subset(gans, db, desc): check_subset(zhis, zhi_chongs, '地支相冲') check_subset(zhis, zhi_poes, '地支相破') check_subset(zhis, zhi_haies, '地支相害') -check_subset(zhis, zhi_xings, '地支相刑') +check_subset(zhis, zhi_xings, '地支相刑') + +# 子女分析 +child = ten_deities[me].inverse['伤'] if options.n else ten_deities[me].inverse['食'] +print("\n子女状态:", child, ten_deities[child][zhis[3]]) +print("=========================") + +# 对象状态 +peer = ten_deities[me].inverse['官'] if options.n else ten_deities[me].inverse['财'] +print("\n对象状态:", peer, ten_deities[peer][zhis[1]]) +print("=========================") + +# 羊刃分析 +key = '帝旺' if Gan.index(me)%2 == 0 else '冠带' + +if ten_deities[me].inverse[key] in zhis: + print("\n羊刃:", me, ten_deities[me].inverse[key]) + print("=========================") + print("羊刃重重又见禄,富贵饶金玉。 官、印相助福相资。") + print("专羊刃,主眼露性急,凶暴害物,亲近恶党,生旺稍可,死绝尤甚") + print("在五行败者逢之,多患瘰疠或瘴疠、金刃之灾,不论贵贱,多冗杂劳迫,少得安逸") + print("六甲生人逢乙卯、丁卯,为真羊刃。若重犯,主残疾,官禄失退则散在晚年") + print("运行羊刃,财物耗散") + print("\n有刃头财,如甲人见己卯之类,谓之销 煞 主财帛歇灭,常人以屠沽刀锯等事为业,或因被盗而致命者。") + print("有刃头鬼,如甲人见辛卯之类,谓之持刃煞,主人不令终,虽入贵格,亦不可测。甲乙人见之,尤紧。多脑疽发背而终。") + print("有羊刃相蚀,如甲寅虎、兔、甲戊狗兔之类(),见所蚀年月稍可,日时至危。若见两重,更值空亡,设非相蚀,亦犯流配至老,主不善终?") + print("有揽辔澄清格,谓贵人乘马而前视羊刃,犹马头带剑之义。") + print("=========================") guan_list = [] @@ -156,8 +184,9 @@ def check_subset(gans, db, desc): print("官冲",guan_list) guan_xings = [] - l = list(gans + zhis) - l.remove(gui) + l = list(zhis) + if gui in l: + l.remove(gui) for item in l: if item in xings[gui]: guan_xings.append(item) @@ -186,7 +215,7 @@ def check_subset(gans, db, desc): scores = {"金":0, "木":0, "水":0, "火":0, "土":0} for item in gans: - scores[gan5[item]] += 150 + scores[gan5[item]] += 5 for item in list(zhis) + [zhis.month]: for gan in zhi5[item]: diff --git a/bazi/datas.py b/bazi/datas.py index f2500d4..173ff17 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -8,54 +8,56 @@ Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] ten_deities = { - '甲':bidict({'甲':'比肩', "乙":'劫财', "丙":'食神', "丁":'伤官', "戊":'偏财', - "己":'正财', "庚":'偏官', "辛":'正官', "壬":'偏印', "癸":'印', "子":'沐浴', - "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', + '甲':bidict({'甲':'比肩', "乙":'劫', "丙":'食', "丁":'伤', "戊":'偏财', + "己":'财', "庚":'杀', "辛":'官', "壬":'偏印', "癸":'印', "子":'沐浴', + "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), - '乙':bidict({'甲':'劫财', "乙":'比肩', "丙":'伤官', "丁":'食神', "戊":'正财', - "己":'偏财', "庚":'正官', "辛":'偏官', "壬":'印',"癸":'偏印', "子":'病', - "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', + '乙':bidict({'甲':'劫', "乙":'比肩', "丙":'伤', "丁":'食', "戊":'财', + "己":'偏财', "庚":'官', "辛":'杀', "壬":'印',"癸":'偏印', "子":'病', + "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), - '丙':bidict({'丙':'比肩', "丁":'劫财', "戊":'食神', "己":'伤官', "庚":'偏财', - "辛":'正财', "壬":'偏官', "癸":'正官', "甲":'偏印', "乙":'印',"子":'胎', - "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', + '丙':bidict({'丙':'比肩', "丁":'劫', "戊":'食', "己":'伤', "庚":'偏财', + "辛":'财', "壬":'杀', "癸":'官', "甲":'偏印', "乙":'印',"子":'胎', + "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), - '丁':bidict({'丙':'劫财', "丁":'比肩', "戊":'伤官', "己":'食神', "庚":'正财', - "辛":'偏财', "壬":'正官', "癸":'偏官', "甲":'印',"乙":'偏印', "子":'绝', - "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', + '丁':bidict({'丙':'劫', "丁":'比肩', "戊":'伤', "己":'食', "庚":'财', + "辛":'偏财', "壬":'官', "癸":'杀', "甲":'印',"乙":'偏印', "子":'绝', + "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), - '戊':bidict({'戊':'比肩', "己":'劫财', "庚":'食神', "辛":'伤官', "壬":'偏财', - "癸":'正财', "甲":'偏官', "乙":'正官', "丙":'偏印', "丁":'印',"子":'胎', - "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', + '戊':bidict({'戊':'比肩', "己":'劫', "庚":'食', "辛":'伤', "壬":'偏财', + "癸":'财', "甲":'杀', "乙":'官', "丙":'偏印', "丁":'印',"子":'胎', + "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), - '己':bidict({'戊':'劫财', "己":'比肩', "庚":'伤官', "辛":'食神', "壬":'正财', - "癸":'偏财', "甲":'正官', "乙":'偏官', "丙":'印',"丁":'偏印',"子":'绝', - "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', + '己':bidict({'戊':'劫', "己":'比肩', "庚":'伤', "辛":'食', "壬":'财', + "癸":'偏财', "甲":'官', "乙":'杀', "丙":'印',"丁":'偏印',"子":'绝', + "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), - '庚':bidict({'庚':'比肩', "辛":'劫财', "壬":'食神', "癸":'伤官', "甲":'偏财', - "乙":'正财', "丙":'偏官', "丁":'正官', "戊":'偏印', "己":'印',"子":'死', - "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', + '庚':bidict({'庚':'比肩', "辛":'劫', "壬":'食', "癸":'伤', "甲":'偏财', + "乙":'财', "丙":'杀', "丁":'官', "戊":'偏印', "己":'印',"子":'死', + "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), - '辛':bidict({'庚':'劫财', "辛":'比肩', "壬":'伤官', "癸":'食神', "甲":'正财', - "乙":'偏财', "丙":'正官', "丁":'偏官', "戊":'印', "己":'偏印', "子":'长生', - "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', + '辛':bidict({'庚':'劫', "辛":'比肩', "壬":'伤', "癸":'食', "甲":'财', + "乙":'偏财', "丙":'官', "丁":'杀', "戊":'印', "己":'偏印', "子":'长生', + "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), - '壬':bidict({'壬':'比肩', "癸":'劫财', "甲":'食神', "乙":'伤官', "丙":'偏财', - "丁":'正财', "戊":'偏官', "己":'正官', "庚":'偏印', "辛":'印',"子":'帝旺', - "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', + '壬':bidict({'壬':'比肩', "癸":'劫', "甲":'食', "乙":'伤', "丙":'偏财', + "丁":'财', "戊":'杀', "己":'官', "庚":'偏印', "辛":'印',"子":'帝旺', + "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), - '癸':bidict({'壬':'劫财', "癸":'比肩', "甲":'伤官', "乙":'食神', "丙":'正财', - "丁":'偏财', "戊":'正官', "己":'偏官', "庚":'印',"辛":'偏印', "子":'建', - "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', + '癸':bidict({'壬':'劫', "癸":'比肩', "甲":'伤', "乙":'食', "丙":'财', + "丁":'偏财', "戊":'官', "己":'杀', "庚":'印',"辛":'偏印', "子":'建', + "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), - + } -gan_atts = { + + +gan_desc = { "甲":'''雷龙 梁栋 禄寅;斧斤斫削成其器。木不南奔;喜春运不喜西方,春生,处世安然,必寿。''', "乙":'''风 树 禄卯 水泛木浮 秋令大吉''', "丙":"电 冶 禄巳 火无西向", - "丁":"星 灯 禄午 火明则灭 喜遇秋. 丁巳日,多克父兄妻子,财忌比劫,兄屈弟下,巳有戊土,伤官", + "丁":"星 灯 禄午 火明则灭 喜遇秋. 丁巳日,多克父兄妻子,财忌比劫,兄屈弟下,巳有戊土,伤", "戊":"雾霞 山 禄巳 土虚则崩 四柱带水则为上格,霞水相辉而成文彩也;年月干见癸雨后霞现", "己":"元气云 真土 禄午 火燥土裂 天降时雨,山川出云 贵坐酉,贵春生,贵见印,坐亥者不可见乙木,云升天,遇风则狼籍", "庚":"月 铁 禄申 畏癸水 巳成钟鼎 水土沉埋则无声 金实无声 金沉水底 四柱有乙巳,月白风清, 秋上,冬次,春夏无取。", @@ -63,14 +65,44 @@ "壬":"秋露云 泽 禄亥 死水横流", "癸":"雨 泉脉 春霖 禄子 水不西流 癸卯日透己, 有云行雨有经济才也。春夏吉,秋冬不吉"} +zhi_desc = { + "子":"墨池 正北 时喜见癸亥,谓之水归大海,又谓之双鱼游墨,必为文章士矣。", + "丑":"柳岸 丑人时见己未,乃月照柳梢,极为上格", + "寅":"广谷 寅生人而时戊辰者,谓之虎啸而谷风生 威震万里", + "卯":"琼林 乙木 正东 仲春 卯年遇巳未时者,是为兔入月宫之象,主大贵。", + "辰":"草泽 东方之次 辰逢壬戍、癸亥即龙归大海格", + "巳":"大驿 巳生喜得辰时,蛇化轻龙,于格为千里龙驹", + "午": "烽堠 南 属火、土,其色赤黄 时利见辰,真龙出则凡马空矣,谓之马化龙驹。", + "申":"名都 帝王所居;申宫壬水生 亥时,乃地天交泰", + "酉":"寺钟 正西 见寅吉,谓之钟鸣谷应。", + "戌": "烧原 戌与辰地皆贵人所不临也 戌生逢卯 春入烧痕", + "亥":"悬河 即天门 日时见寅、辰二字,是乃水拱雷门", +} + +zhi_atts = { + "子":{"冲":"午", "刑":"卯", "被刑":"卯", "合":("申","辰"), "会":("亥","丑"), '害':'未', '破':'酉'}, + "丑":{"冲":"未", "刑":"戌", "被刑":"未", "合":("巳","酉"), "会":("子","亥"), '害':'午', '破':'辰'}, + "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥'}, + "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午'}, + "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑'}, + "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","巳"), "会":("午","未"), '害':'寅', '破':'申'}, + "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯'}, + "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌'}, + "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳'}, + "酉":{"冲":"卯", "刑":"酉", "被刑":"酉", "合":("巳","丑"), "会":("申","戌"), '害':'戌', '破':'子'}, + "戌":{"冲":"辰", "刑":"未", "被刑":"丑", "合":("午","寅"), "会":("申","酉"), '害':'酉', '破':'未'}, + "亥":{"冲":"巳", "刑":"亥", "被刑":"亥", "合":("卯","未"), "会":("子","丑"), '害':'申', '破':'寅'}, +} + gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", - "庚":"金", "辛":"金", "壬":"水", "癸":"水"} + "庚":"金", "辛":"金", "壬":"水", "癸":"水"} guans = { - "甲":('辛',"酉"), "乙":('庚',"申",'巳'), "丙":('子',"癸"), "丁":('壬',"亥"), - "戊":('乙',"卯"), "己":('甲',"寅"), "庚":('丁',"午"), "辛":('丙',"寅",'巳'), - "壬":('己',"午",'未','丑'), "癸":('戊',"辰",'巳','戌'),} + "甲":('辛',"酉","戌","丑"), "乙":('庚',"申",'巳'), "丙":("癸",'丑','辰'), + "丁":('壬',"亥", '申'),"戊":('乙',"卯","戌","未"), "己":('甲',"寅", "亥"), + "庚":('丁',"午", "戌","未"), "辛":('丙',"寅",'巳'), + "壬":('己',"午",'未','丑'), "癸":('戊',"寅","辰",'巳','申','戌'),} lus = {"甲":'寅', "乙":"卯", "丙":"巳", "丁":"午", "戊":"巳", "己":"午", "庚": "申", "辛":"酉", "壬": "亥", "癸":"子"} @@ -78,14 +110,14 @@ tianyuans = [ ("甲","巳"), ("甲","申"), ("甲","酉"), ("甲","丑"), ("甲","戌"), ("乙","巳"), ("乙","申"), ("乙","酉"), ("乙","丑"), ("乙","戌"), - ("丙","亥"), ("丙","申"), ("丙","丑"), ("丙","辰"), ("丙","子"), ("丙","亥"), - ("丁","亥"), ("丁","申"), ("丁","丑"), ("丁","辰"), ("丙","子"), ("丙","亥"), - ("戊","寅"), ("戊","卯"), ("戊","未"), ("戊","亥"), ("戊","辰"), - ("己","寅"), ("己","卯"), ("己","未"), ("己","亥"), ("己","辰"), + ("丙","亥"), ("丙","申"), ("丙","丑"), ("丙","辰"), ("丙","子"), + ("丁","亥"), ("丁","申"), ("丁","丑"), ("丁","辰"), ("丙","子"), + ("戊","寅"), ("戊","卯"), ("戊","未"), ("戊","亥"), ("戊","戌"), + ("己","寅"), ("己","卯"), ("己","未"), ("己","亥"), ("己","戌"), ("庚","寅"), ("庚","未"), ("庚","戌"), ("庚","午"), ("庚","巳"), ("辛","寅"), ("辛","未"), ("辛","戌"), ("辛","午"), ("辛","巳"), - ("壬","寅"), ("壬","辰"), ("壬","巳"), ("壬","申"), ("壬","戌"), ("壬","亥"), ("壬","丑"), ("壬","未"), ("壬","午"), - ("癸","寅"), ("癸","辰"), ("癸","巳"), ("癸","申"), ("癸","戌"), ("癸","亥"), ("癸","丑"), ("癸","未"), ("癸","午"), + ("壬","寅"), ("壬","辰"), ("壬","巳"), ("壬","申"), ("壬","戌"), ("壬","丑"), ("壬","未"), ("壬","午"), + ("癸","寅"), ("癸","辰"), ("癸","巳"), ("癸","申"), ("癸","戌"), ("癸","丑"), ("癸","未"), ("癸","午"), ] @@ -176,31 +208,19 @@ 和土有关的工作较容易''', } Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] -zhi5 = {"子":{"壬":56,"癸":184}, - "丑":{"辛":40,"癸":56, "己":144}, - "寅":{"戊":40,"丙":40, "甲":160}, - "卯":{"甲":56, "乙":184}, - "辰":{"癸":40,"乙":56, "戊":144}, - "巳":{"庚":40,"戊":56, "丙":144}, - "午":{"己":56, "丁":184}, - "未":{"甲":40,"丁":56, "己":144}, - "申":{"戊":40,"壬":40, "庚":160}, - "酉":{ "庚":56, "辛":184}, - "戌":{"丙":40,"辛":56, "戊":144}, - "亥":{"戊":40,"甲":40, "壬":160}} - -#zhi5 = {"子":{"癸":8}, - #"丑":{"辛":1,"癸":2, "己":5}, - #"寅":{"戊":1,"丙":2, "甲":5}, - #"卯":{"乙":8}, - #"辰":{"癸":1,"乙":2, "戊":5}, - #"巳":{"庚":1,"戊":2, "丙":5}, - #"午":{"己":3, "丁":5}, - #"未":{"乙":1,"丁":2, "己":5}, - #"申":{"戊":1,"壬":2, "庚":5}, - #"酉":{"辛":8}, - #"戌":{"丁":1,"辛":2, "戊":5}, - #"亥":{"甲":3, "壬":5}} + +zhi5 = {"子":{"癸":8}, + "丑":{"辛":1,"癸":2, "己":5}, + "寅":{"戊":1,"丙":2, "甲":5}, + "卯":{"乙":8}, + "辰":{"癸":1,"乙":2, "戊":5}, + "巳":{"庚":1,"戊":2, "丙":5}, + "午":{"己":3, "丁":5}, + "未":{"乙":1,"丁":2, "己":5}, + "申":{"戊":1,"壬":2, "庚":5}, + "酉":{"辛":8}, + "戌":{"丁":1,"辛":2, "戊":5}, + "亥":{"甲":3, "壬":5}} ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] @@ -272,15 +292,6 @@ ("戌", "未"): "相破", } -zhi_poes = { - ("子", "酉"): "相破", - ("午", "卯"): "相破", - ("巳", "申"): "相破", - ("寅", "亥"): "相破", - ("辰", "丑"): "相破", - ("戌", "未"): "相破", -} - zhi_haies = { ("子", "未"): "相害", ("丑", "午"): "相害", From 35f953635386befe208607a76100f4611657ebd5 Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 1 Mar 2019 17:14:11 +0800 Subject: [PATCH 013/122] modify xings in bazi.py --- README.md | 2 + bazi/__pycache__/datas.cpython-36.pyc | Bin 12849 -> 13771 bytes bazi/bazi.py | 76 +++++++++++++++++++++++++- bazi/datas.py | 16 +++--- 4 files changed, 85 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 3607aa3..9f44f87 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ 人脸测试的一些小脚本和教程。 +bazi/bazi.py:使用python排八字 [文档地址](https://china-testing.github.io/bazi.html) + flask/api_demo: 使用python3和flask构建RESTful API(接口测试服务) 的源码 [文档地址](http://t.cn/RQzD0uY) book_scraper:一些爬取书籍的脚本。如果你知道有更好的免费书籍下载站点或下载脚本,请联系xurongzhong#126.com,谢谢 [文档地址](http://t.cn/RQzD0uY) diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc index 39ea606656ca4bb846a59c8955a696a9521ab973..a42d44e902bff30ec05d23e323e620f2fc1a4a3e 100644 GIT binary patch delta 1642 zcmYjPS#MiK7>%3I(5i(8DuuGNmWoKq(o)h=T9(+^>NvmyJBEh}eF8;1q99r%oJCjO zkzFTbb4XO;q;2q$*fsX`R>~8!?EAjt&fIIZ6n+6`=5~p#Id{JEZD+ojB|7)gj@Hea zH%2eK`dm|IUENCEn%@EJZCEcKUD|PUo%=KToVuu+4#gVrbzpr#Us4;jOU6z;WT&s_ zYkWH-(@jqNzoBmt(Iy!OcJ1^XeNQ&(yjaIhz4Qb92((MaiP$#!iGD_eO){Ob*Dp@` z73Ca~>P2`D{YJl|RgYwB5Y|mAq#?p7nRW>5Bt{&3mt=&n4${epzEHojwMKu?pY#{~ zP5;m;U7&yIKWd3>bX|?wHdJks%Z}_0R1}^K(ew4oTf!E)6{{Jm1#2hPZJE~_UbF1G zopLblpm%|HQXaUA3c%f@_Fd%?iFZ*ExJTmM5?iCY*6(-kr84+^Q~};YRp5R)1H6~s z10JAq-+EUQb_b<>pY+`?;~t<&UxVv<_#TwLHd(_aeRetn-&XkAWv>p2of5kwc1t|8 zmx^d`0|Fg%7T6=vDX~}LLlPgRvxvJ95s%RO(SwcKo`-o8%*W{i;1l#A@JTuce2UHk zpQew1&(Oy}7k$##=(<_noL%0H19NuD$026?X>5~g+a>G82G@47JXY88Y-YT%wB7wE zo*|E&V#y3kgsnz83WJZSEH<-R3TkQ`EKHux!erqP^H*6ir%&aPure^jM->DZ3xlGB zcS6gnCg1-G%Ce9bmX?o*vM{t_9HsQZMdk^D<%wd=$e(!m?Hf=&>23T<*%!bNa|6H1%&nZ%sXhVrISmBT`HXVvI`K6q7Q=aChtk z)PRN>^UORk2OmpEz}H5rYb7B}N=jXllrklOhosATn36-QD|$rxwR)t2aEK2MYk7B; zCC5=tUwn%#`nWG-43}YQs?VrSt?jLkWY8NIBE50!!LVtMIdYJYqN|zOOh#lW0b@X^ zc|u|wC()jJgOF5Hd{*ql(Gx{+56O%h94@8i5%++jLj;=_qk~T{qY45vRYgBh!#lw| zIl-ffBxU-nK3G{TO&Ni>R+up3S!IlS{Rl%aNT?L!F}ryErU?bB*TF3x&6ROAMGrS` zwOFG^n!W3GTcY(Xx45k=o?(%)7(gL_iU>xQmJb=elvN*@!3nf{5sKJ}L1Snb5w+># zd~B8-3-a`c(3>7%C6x~>@JacQ=T5QI4DwmB0O4X9#cA=9DoL&!XVtPkD(0*Q63qWL z^SX=7Cv5R364QK097^2qd=Zad?88|j=VwYnQfgnokQ^ zqNVqwQH^Mo5E^Uc5L;3}Y6S(ROk6S(`OupfwJG;nQ6(_Nyb(Q~M}tgr%i#_6*I2eh I{d*Sv2W_{8HUIzs delta 712 zcmYk4$xjnu7{+I4ZJ_}Vh6o5sB1GGwf?`=zoSAO4Q(RdN6AvDqXc`h@Vh9NwdgVwm zM|$$&%>xG%Wj%BFw|{sla|@!(A6_r3Ex&%E!K$v4$KjH>#gBG0Bo@2RY= zD6`6cS2JsB%7yd8RegD>M|g|~qG(OKxyJZB!Bc1mieexR1JCfBYek_k?7-DQ6+3Z_^kRhc;X3KZjpPQam{ko%$z8(T!aa7A zt1(rJG3s^5l6!HB+=p?p9uwq#j3r%G39Ep-H;C6Lxh7!j$3gK9VVqtW zy%w2uSf~kgp&<;WFvnGOqWflLp^K+) macE@za;9gqz2YmgUH*Z*?TS6 Date: Fri, 1 Mar 2019 22:54:49 +0800 Subject: [PATCH 014/122] rm 'bazi/__pycache__/datas.cpython-36.pyc --- bazi/__pycache__/datas.cpython-36.pyc | Bin 13771 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bazi/__pycache__/datas.cpython-36.pyc diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc deleted file mode 100644 index a42d44e902bff30ec05d23e323e620f2fc1a4a3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13771 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 AJOBUy From 6c32eccabd4bc1a364fbbc587082c1e83e832f1d Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 4 Mar 2019 07:48:06 +0800 Subject: [PATCH 015/122] =?UTF-8?q?Add=20=E5=B9=B2=E5=9C=A8=E6=94=AF?= =?UTF-8?q?=E7=9A=84=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/bazi.py | 73 ++++++++++++++++++++++++++++++++------------------- bazi/datas.py | 3 ++- 2 files changed, 48 insertions(+), 28 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index d6968aa..744cf4c 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -13,6 +13,12 @@ from datas import * +def yinyang(item): + if item in Gan: + return '+' if Gan.index(item)%2 == 0 else '-' + else: + return '+' if Zhi.index(item)%2 == 0 else '-' + description = ''' ''' @@ -70,34 +76,55 @@ print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) print("\n八字: 同义词:七杀|偏官 偏印|枭神 解读:钉钉或微信pythontesting") -print("="*150) -print("{:^30s}{:^30s}{:^30s}{:^30s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) -print("-"*150) -print("{:^32s}{:^32s}{:^32s}{:^32s}".format( - gans.year + "--" + '{} [{}]'.format(gan5[gans.year], ten_deities[me][gans.year]), - gans.month + "--" + '{} [{}]'.format(gan5[gans.month], ten_deities[me][gans.month]), - me + "--" + '{} [{}]'.format(gan5[me], '自己'), - gans.time + "--" + '{} [{}]'.format(gan5[gans.time], ten_deities[me][gans.time]), +print("="*140) +print("{:^28s}{:^28s}{:^28s}{:^28s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) +print("-"*140) +print("{:^30s}{:^30s}{:^30s}{:^30s}".format( + '{}{}{} [{}]'.format( + gans.year, yinyang(gans.year), gan5[gans.year], ten_deities[me][gans.year]), + '{}{}{} [{}]'.format( + gans.month, yinyang(gans.month), gan5[gans.month], ten_deities[me][gans.month]), + '{}{}{} [{}]'.format(me, yinyang(me),gan5[me], '自己'), + '{}{}{} [{}]'.format(gans.time, yinyang(gans.time), gan5[gans.time], ten_deities[me][gans.time]), )) -print("{:^32s}{:^32s}{:^32s}{:^32s}".format( - zhis.year + "--" + ten_deities[me][zhis.year], - zhis.month + "--" + ten_deities[me][zhis.month], - zhis.day + "--" + ten_deities[me][zhis.day], - zhis.time + "--" + ten_deities[me][zhis.time], +print("{:^30s}{:^30s}{:^30s}{:^30s}".format( + "{}{}{} [{}]".format(zhis.year, yinyang(zhis.year), + ten_deities[me][zhis.year], ten_deities[gans.year][zhis.year]), + "{}{}{} [{}]".format(zhis.month, yinyang(zhis.month), + ten_deities[me][zhis.month], ten_deities[gans.month][zhis.month]), + "{}{}{}".format(zhis.day, yinyang(zhis.day), ten_deities[me][zhis.day]), + "{}{}{} [{}]".format(zhis.time, yinyang(zhis.time), + ten_deities[me][zhis.time], ten_deities[gans.time][zhis.time]), )) for item in zhis: out = '' for gan in zhi5[item]: out = out + "{}{}{}{} ".format(gan, gan5[gan], zhi5[item][gan], ten_deities[me][gan]) - print("{:^28s}".format(out), end=' ') + print("{:^26s}".format(out), end=' ') print("\n\n") -print("="*150) +print("="*140) print("你属:", me, "特点:--", gan_desc[me],"\n") print("年份:", zhis[0], "特点:--", zhi_desc[zhis[0]],"\n") -print(dict(ten_deities[me])) +#print(dict(ten_deities[me])) #print(ten_deities[me]) +# 子女分析 +print("\n\n子女状态:", end='') +children = ['食','伤'] if options.n else ['官','杀'] +for item in children: + gan = ten_deities[me].inverse[item] + print(item, ": ", gan, ten_deities[gan][zhis[3]], '\t\t', end='') + + +# 对象状态 +print("\n\n对象状态:", end='') +children = ['官','杀'] if options.n else ['财','偏财'] +for item in children: + gan = ten_deities[me].inverse[item] + print(item, ": ", gan, ten_deities[gan][zhis[1]], '\t\t', end='') + + def check_subset(gans, db, desc): flag = True for item in db: @@ -118,15 +145,7 @@ def check_subset(gans, db, desc): check_subset(zhis, zhi_haies, '地支相害') check_subset(zhis, zhi_xings, '地支相刑') -# 子女分析 -child = ten_deities[me].inverse['伤'] if options.n else ten_deities[me].inverse['食'] -print("\n子女状态:", child, ten_deities[child][zhis[3]]) -print("=========================") -# 对象状态 -peer = ten_deities[me].inverse['官'] if options.n else ten_deities[me].inverse['财'] -print("\n对象状态:", peer, ten_deities[peer][zhis[1]]) -print("=========================") # 羊刃分析 key = '帝旺' if Gan.index(me)%2 == 0 else '冠带' @@ -261,9 +280,9 @@ def check_subset(gans, db, desc): l = list(zhis) if gui in l: l.remove(gui) - for item in l: - if item in xings[gui]: - guan_xings.append(item) + for item in l: + if item in xings[gui]: + guan_xings.append(item) if guan_xings: print("官刑",guan_xings) diff --git a/bazi/datas.py b/bazi/datas.py index 7873cee..c4de776 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -73,6 +73,7 @@ "辰":"草泽 东方之次 辰逢壬戍、癸亥即龙归大海格", "巳":"大驿 巳生喜得辰时,蛇化轻龙,于格为千里龙驹", "午": "烽堠 南 属火、土,其色赤黄 时利见辰,真龙出则凡马空矣,谓之马化龙驹。", + "未": "花园 卯乃木旺,自 成林麓;未乃木库,如人筑墙垣以护百花也,以百花言未中有 杂气耳;未年人双飞格,最妙,如辛未见戊戍,两干不杂是也。 ", "申":"名都 帝王所居;申宫壬水生 亥时,乃地天交泰", "酉":"寺钟 正西 见寅吉,谓之钟鸣谷应。", "戌": "烧原 戌与辰地皆贵人所不临也 戌生逢卯 春入烧痕", @@ -232,7 +233,7 @@ gan_hes = { ("甲", "己"): "中正之合 化土", ("乙", "庚"): "仁义之合 化金", - ("丙", "辛"): "丙义之合 化水", + ("丙", "辛"): "威制之合 化水", ("丁", "壬"): "淫慝之合 化木", ("戊", "癸"): "无情之合 化火", } From 4e347fa7538d0266b13c5aa844e8c8493913f69b Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 4 Mar 2019 10:38:57 +0800 Subject: [PATCH 016/122] =?UTF-8?q?Add=20=E5=B9=B2=E5=9C=A8=E5=9B=9B?= =?UTF-8?q?=E6=94=AF=E7=9A=84=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/__pycache__/datas.cpython-36.pyc | Bin 0 -> 13867 bytes bazi/bazi.py | 12 ++++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 bazi/__pycache__/datas.cpython-36.pyc diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fa7bece4b48812ee5b8dbaa9f6e148cb1bb7cd4a GIT binary patch literal 13867 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 R@5>!`B@CVg+g&^J{|`~q7W4oB literal 0 HcmV?d00001 diff --git a/bazi/bazi.py b/bazi/bazi.py index 744cf4c..9596e77 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -114,15 +114,19 @@ def yinyang(item): children = ['食','伤'] if options.n else ['官','杀'] for item in children: gan = ten_deities[me].inverse[item] - print(item, ": ", gan, ten_deities[gan][zhis[3]], '\t\t', end='') + print(item, ": ", gan, "--", ten_deities[gan][zhis[0]], + ten_deities[gan][zhis[1]], ten_deities[gan][zhis[2]], " [", + ten_deities[gan][zhis[3]], ']\t\t', end='') # 对象状态 print("\n\n对象状态:", end='') -children = ['官','杀'] if options.n else ['财','偏财'] -for item in children: +peer = ['官','杀'] if options.n else ['财','偏财'] +for item in peer: gan = ten_deities[me].inverse[item] - print(item, ": ", gan, ten_deities[gan][zhis[1]], '\t\t', end='') + print(item, ": ", gan, "--", ten_deities[gan][zhis[0]], " [", + ten_deities[gan][zhis[1]], "]", ten_deities[gan][zhis[2]], + ten_deities[gan][zhis[3]], '\t\t', end='') def check_subset(gans, db, desc): From edfada38ce0597001ca05d300a1f644cfca880c5 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 4 Mar 2019 10:40:58 +0800 Subject: [PATCH 017/122] rm bazi/__pycache__ --- bazi/__pycache__/datas.cpython-36.pyc | Bin 13867 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bazi/__pycache__/datas.cpython-36.pyc diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc deleted file mode 100644 index fa7bece4b48812ee5b8dbaa9f6e148cb1bb7cd4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13867 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 R@5>!`B@CVg+g&^J{|`~q7W4oB From 92e29e91144de6757f39f466268d9ae8ef4f4b60 Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 5 Mar 2019 07:40:49 +0800 Subject: [PATCH 018/122] Add lu_zhis --- bazi/datas.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/bazi/datas.py b/bazi/datas.py index c4de776..e367dcf 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -107,6 +107,22 @@ lus = {"甲":'寅', "乙":"卯", "丙":"巳", "丁":"午", "戊":"巳", "己":"午", "庚": "申", "辛":"酉", "壬": "亥", "癸":"子"} +lu_zhis = { + "甲":{('丙','寅'):'福星禄 吉',('戊','寅'):'伏马禄 吉',('庚','寅'):'破禄 半吉半凶', + ('壬','寅'):'正禄 带截路空亡,必为僧道',('甲','寅'):'长生禄 大吉'}, + "乙":{('乙','卯'):'喜神旺禄 吉',('丁','卯'):'截路空亡 凶', + ('己','卯'):'进神禄', ('辛','卯'):'破禄,又为交神,半吉半凶', + ('癸','卯'):'带太乙,死禄,虽贵终贫',}, + "丙":{('己','巳'):'九天库禄 吉', ('辛','巳'):'截路空亡', + ('癸','巳'):'伏贵神禄,半吉半凶', ('乙','巳'):'旺马禄 吉', + ('丁','巳'):'库禄 吉', }, + "丁":{('庚','午'):'截路空亡,凶', ('壬','午'):'德合禄 凶', + ('甲','午'):'进神禄,凶', ('丙','午'):'喜神禄,交羊刃,半吉', + ('戊','午'):'伏羊刃 禄,多凶', }, + "戊":{('庚','午'):'截路空亡,凶', ('壬','午'):'德合禄 凶', + ('甲','午'):'进神禄,凶', ('丙','午'):'喜神禄,交羊刃,半吉', + ('戊','午'):'伏羊刃 禄,多凶', }, "己":"午", + "庚": "申", "辛":"酉", "壬": "亥", "癸":"子"} tianyuans = [ ("甲","巳"), ("甲","申"), ("甲","酉"), ("甲","丑"), ("甲","戌"), From da9a448382f11ea80e0a3fd8dc0b8c5ce42a9261 Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 5 Mar 2019 18:19:31 +0800 Subject: [PATCH 019/122] modify lu_zhis --- bazi/bazi.py | 74 +++++++++++++++++++++++++++++----------- bazi/datas.py | 94 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 112 insertions(+), 56 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index 9596e77..922da95 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -81,7 +81,7 @@ def yinyang(item): print("-"*140) print("{:^30s}{:^30s}{:^30s}{:^30s}".format( '{}{}{} [{}]'.format( - gans.year, yinyang(gans.year), gan5[gans.year], ten_deities[me][gans.year]), + gans.year, yinyang(gans.year), gan5[gans.year], ten_deities[me][gans.year]), '{}{}{} [{}]'.format( gans.month, yinyang(gans.month), gan5[gans.month], ten_deities[me][gans.month]), '{}{}{} [{}]'.format(me, yinyang(me),gan5[me], '自己'), @@ -89,12 +89,12 @@ def yinyang(item): )) print("{:^30s}{:^30s}{:^30s}{:^30s}".format( "{}{}{} [{}]".format(zhis.year, yinyang(zhis.year), - ten_deities[me][zhis.year], ten_deities[gans.year][zhis.year]), + ten_deities[me][zhis.year], ten_deities[gans.year][zhis.year]), "{}{}{} [{}]".format(zhis.month, yinyang(zhis.month), - ten_deities[me][zhis.month], ten_deities[gans.month][zhis.month]), + ten_deities[me][zhis.month], ten_deities[gans.month][zhis.month]), "{}{}{}".format(zhis.day, yinyang(zhis.day), ten_deities[me][zhis.day]), "{}{}{} [{}]".format(zhis.time, yinyang(zhis.time), - ten_deities[me][zhis.time], ten_deities[gans.time][zhis.time]), + ten_deities[me][zhis.time], ten_deities[gans.time][zhis.time]), )) for item in zhis: out = '' @@ -113,22 +113,22 @@ def yinyang(item): print("\n\n子女状态:", end='') children = ['食','伤'] if options.n else ['官','杀'] for item in children: - gan = ten_deities[me].inverse[item] - print(item, ": ", gan, "--", ten_deities[gan][zhis[0]], - ten_deities[gan][zhis[1]], ten_deities[gan][zhis[2]], " [", - ten_deities[gan][zhis[3]], ']\t\t', end='') + gan = ten_deities[me].inverse[item] + print(item, ": ", gan, "--", ten_deities[gan][zhis[0]], + ten_deities[gan][zhis[1]], ten_deities[gan][zhis[2]], " [", + ten_deities[gan][zhis[3]], ']\t\t', end='') # 对象状态 print("\n\n对象状态:", end='') peer = ['官','杀'] if options.n else ['财','偏财'] for item in peer: - gan = ten_deities[me].inverse[item] - print(item, ": ", gan, "--", ten_deities[gan][zhis[0]], " [", - ten_deities[gan][zhis[1]], "]", ten_deities[gan][zhis[2]], - ten_deities[gan][zhis[3]], '\t\t', end='') - - + gan = ten_deities[me].inverse[item] + print(item, ": ", gan, "--", ten_deities[gan][zhis[0]], " [", + ten_deities[gan][zhis[1]], "]", ten_deities[gan][zhis[2]], + ten_deities[gan][zhis[3]], '\t\t', end='') + + def check_subset(gans, db, desc): flag = True for item in db: @@ -173,19 +173,24 @@ def check_subset(gans, db, desc): me_zhi = zhis[2] other_zhis = zhis[:2] + zhis[3:] flag = False +tmp_list = [] if me_zhi in ("申", "子", "辰"): if "子" in other_zhis: flag = True + tmp_list.append((me_zhi, '子')) elif me_zhi in ("丑", "巳", "酉"): if "酉" in other_zhis: flag = True + tmp_list.append((me_zhi, '酉')) elif me_zhi in ("寅", "午", "戌"): if "午" in other_zhis: flag = True + tmp_list.append((me_zhi, '午')) elif me_zhi in ("亥", "卯", "未"): if "卯" in other_zhis: flag = True - + tmp_list.append((me_zhi, '卯')) + if flag: print("\n\n将星: 常欲吉星相扶,贵煞加临乃为吉庆。") print("=========================") @@ -193,7 +198,8 @@ def check_subset(gans, db, desc): 不杂者,出将入相之格也,带华盖、正印而不夹库,两府之格也;只带库墓而带正印,员郎 以上,既不带墓又不带正印,止有华盖,常调之禄也;带华印而正建驿马,名曰节印,主旌节 之贵;若岁干库同库为两重福,主大贵。''') - + print(tmp_list) + # 华盖分析 flag = False if me_zhi in ("申", "子", "辰"): @@ -208,7 +214,7 @@ def check_subset(gans, db, desc): elif me_zhi in ("亥", "卯", "未"): if "未" in other_zhis: flag = True - + if flag: print("\n\n华盖: 多主孤寡,总贵亦不免孤独,作僧道艺术论。") print("=========================") @@ -231,7 +237,7 @@ def check_subset(gans, db, desc): elif me_zhi in ("亥", "卯", "未") or year_zhi in ("亥", "卯", "未"): if "子" in other_zhis: flag = True - + if flag: print("\n\n咸池(桃花): 墙里桃花,煞在年月;墙外桃花,煞在日时;") print("=========================") @@ -242,6 +248,36 @@ def check_subset(gans, db, desc): 非为吉兆,妇人尤忌之。 咸池非吉煞,日时与水命遇之尤凶。''') +# 禄分析 +flag = False +for item in zhus: + if item in lu_types[me]: + if not flag: + print("\n\n禄分析:") + print("=========================") + print(item,lu_types[me][item]) + + +# 文昌贵人 +if wenchang[me] in zhis: + print("\n\n文昌贵人: ") + print("=========================") + print(me, wenchang[me]) + +# 文星贵人 +if wenxing[me] in zhis: + print("\n\n文星贵人: ") + print("=========================") + print(me, wenxing[me]) + +# 天印贵人 +if tianyin[me] in zhis: + print("\n\n天印贵人: 此号天印贵,荣达受皇封") + print("=========================") + print(me, tianyin[me]) + + + # 官分析 guan_list = [] for item in gans + zhis: @@ -275,7 +311,7 @@ def check_subset(gans, db, desc): guan_chongs = [] gui = guan_list[0] for item in gans + zhis: - if item in chongs[gui]: + if item in chongs.get(gui, []): guan_chongs.append(item) if guan_chongs: print("官冲",guan_list) diff --git a/bazi/datas.py b/bazi/datas.py index e367dcf..2aa1b6f 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -11,43 +11,43 @@ '甲':bidict({'甲':'比肩', "乙":'劫', "丙":'食', "丁":'伤', "戊":'偏财', "己":'财', "庚":'杀', "辛":'官', "壬":'偏印', "癸":'印', "子":'沐浴', "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', - "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), + "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), '乙':bidict({'甲':'劫', "乙":'比肩', "丙":'伤', "丁":'食', "戊":'财', "己":'偏财', "庚":'官', "辛":'杀', "壬":'印',"癸":'偏印', "子":'病', "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', - "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), + "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), '丙':bidict({'丙':'比肩', "丁":'劫', "戊":'食', "己":'伤', "庚":'偏财', "辛":'财', "壬":'杀', "癸":'官', "甲":'偏印', "乙":'印',"子":'胎', "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', - "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), '丁':bidict({'丙':'劫', "丁":'比肩', "戊":'伤', "己":'食', "庚":'财', "辛":'偏财', "壬":'官', "癸":'杀', "甲":'印',"乙":'偏印', "子":'绝', "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', - "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), '戊':bidict({'戊':'比肩', "己":'劫', "庚":'食', "辛":'伤', "壬":'偏财', "癸":'财', "甲":'杀', "乙":'官', "丙":'偏印', "丁":'印',"子":'胎', "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', - "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), '己':bidict({'戊':'劫', "己":'比肩', "庚":'伤', "辛":'食', "壬":'财', "癸":'偏财', "甲":'官', "乙":'杀', "丙":'印',"丁":'偏印',"子":'绝', "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', - "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), '庚':bidict({'庚':'比肩', "辛":'劫', "壬":'食', "癸":'伤', "甲":'偏财', "乙":'财', "丙":'杀', "丁":'官', "戊":'偏印', "己":'印',"子":'死', "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', - "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), + "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), '辛':bidict({'庚':'劫', "辛":'比肩', "壬":'伤', "癸":'食', "甲":'财', "乙":'偏财', "丙":'官', "丁":'杀', "戊":'印', "己":'偏印', "子":'长生', "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', - "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), + "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), '壬':bidict({'壬':'比肩', "癸":'劫', "甲":'食', "乙":'伤', "丙":'偏财', "丁":'财', "戊":'杀', "己":'官', "庚":'偏印', "辛":'印',"子":'帝旺', "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', - "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), + "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), '癸':bidict({'壬':'劫', "癸":'比肩', "甲":'伤', "乙":'食', "丙":'财', "丁":'偏财', "戊":'官', "己":'杀', "庚":'印',"辛":'偏印', "子":'建', "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', - "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), + "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), } @@ -107,23 +107,38 @@ lus = {"甲":'寅', "乙":"卯", "丙":"巳", "丁":"午", "戊":"巳", "己":"午", "庚": "申", "辛":"酉", "壬": "亥", "癸":"子"} -lu_zhis = { - "甲":{('丙','寅'):'福星禄 吉',('戊','寅'):'伏马禄 吉',('庚','寅'):'破禄 半吉半凶', - ('壬','寅'):'正禄 带截路空亡,必为僧道',('甲','寅'):'长生禄 大吉'}, - "乙":{('乙','卯'):'喜神旺禄 吉',('丁','卯'):'截路空亡 凶', - ('己','卯'):'进神禄', ('辛','卯'):'破禄,又为交神,半吉半凶', - ('癸','卯'):'带太乙,死禄,虽贵终贫',}, - "丙":{('己','巳'):'九天库禄 吉', ('辛','巳'):'截路空亡', - ('癸','巳'):'伏贵神禄,半吉半凶', ('乙','巳'):'旺马禄 吉', - ('丁','巳'):'库禄 吉', }, - "丁":{('庚','午'):'截路空亡,凶', ('壬','午'):'德合禄 凶', - ('甲','午'):'进神禄,凶', ('丙','午'):'喜神禄,交羊刃,半吉', - ('戊','午'):'伏羊刃 禄,多凶', }, - "戊":{('庚','午'):'截路空亡,凶', ('壬','午'):'德合禄 凶', - ('甲','午'):'进神禄,凶', ('丙','午'):'喜神禄,交羊刃,半吉', - ('戊','午'):'伏羊刃 禄,多凶', }, "己":"午", - "庚": "申", "辛":"酉", "壬": "亥", "癸":"子"} - +lu_types = { + "甲":{('丙','寅'):'福星禄 名位禄 吉', ('戊','寅'):'伏马禄 吉', + ('庚','寅'):'破禄,半吉半凶', ('壬','寅'):'正禄,带截路空亡,必为僧道 不吉', + ('甲','寅'):'长生禄,大吉', ('乙','卯'):'生成禄,大吉',}, + "乙":{('乙','卯'):'喜神旺禄 吉', ('丁','卯'):'截路空亡 凶', + ('己','卯'):'进神禄 吉', ('辛','卯'):'破禄,又为交神,半吉半凶', + ('癸','卯'):'死禄 虽贵终贫 凶',}, + "丙":{('己','巳'):'九天库禄 吉', ('辛','巳'):'截路空亡 凶', + ('乙','巳'):'旺马禄 吉', ('丁','巳'):'库禄 吉', + ('癸','巳'):'伏贵神禄,半吉半凶',}, + "丁":{('庚','午'):'截路空亡 凶', ('壬','午'):'德合禄 吉', + ('甲','午'):'进神禄 吉', ('丙','午'):'喜神禄,交羊刃,半吉', + ('戊','午'):'伏羊刃 禄,多凶',}, + "戊":{('己','巳'):'九天库禄,吉', ('辛', '巳'):'截路空亡 凶', + ('癸','巳'):'贵神禄,戊癸化合,有官位重 吉', ('乙','巳'):'驿马同乡禄 吉', + ('戊','巳'):'旺库禄 吉',}, + "己":{('庚','午'):'截路空亡 凶', ('壬','午'):'死鬼禄 凶', + ('甲','午'):'进神合禄 显达之象 吉', ('丙','午'):'喜神禄 半吉', + ('戊','午'):'伏神羊刃禄,凶',}, + "庚":{('壬','申'):'大败禄 凶', ('甲', '申'):'截路空亡禄 凶', + ('丙','申'):'大败禄,多成败 半吉', ('戊','申'):'伏马禄,多滞,若值福星,贵吉', + ('庚','申'):'长生禄,大吉',}, + "辛":{('癸','酉'):'伏神禄,水火相犯,凶', ('乙','酉'):'破禄 成败 凶', + ('丁','酉'):'空亡贵神禄 丁木受气,辛水沐浴,主奸淫事;值喜神,吉。', + ('己','酉'):'进神禄 吉', ('辛','酉'):'正禄 吉',}, + "壬":{('丁','亥'):'贵神合禄 吉', ('乙', '亥'):'天德禄 吉', + ('己','亥'):'旺禄 大吉', ('辛','亥'):'同马乡禄 大吉', + ('癸','亥'):'大败禄,贫薄 凶',}, + "癸":{('甲','子'):'进神禄,主登科进达 吉', ('丙','子'):'交羊刃禄,带福星,贵有权。 吉', + ('戊','子'):'伏羊刃合贵禄 半吉', + ('庚','印禄'):'进神禄 吉', ('壬','子'):'正羊刃禄,凶',}, + } tianyuans = [ ("甲","巳"), ("甲","申"), ("甲","酉"), ("甲","丑"), ("甲","戌"), ("乙","巳"), ("乙","申"), ("乙","酉"), ("乙","丑"), ("乙","戌"), @@ -156,7 +171,7 @@ 勿伤心,注意呼吸系统、肺、肠, 筋 武术、击搏、兵器运动、健身房运动也很好 和金有关的工作较容易''', - "木":''' + "木":''' 春天或清风徐来的天气较走运 卯月、寅月、兔年和虎年运气较好 上午三点至上午七点是吉时 @@ -173,7 +188,7 @@ 多喝点酸性饮料,忌生气,注意神精系统、肝、胆、头肩、肝胆 多打高尔夫球、公园散步、徒步树林等户外运动 和木有关的工作较容易。''', - "水":''' + "水":''' 身体需要注意: 胫足、膀胱肾(比如结石) 多喝水 冬天或冷天气较走运 亥月、子月、猪年和鼠年运气较好 @@ -191,7 +206,7 @@ 多喝水,注意肾脏系统 多做游泳、潜水、滑雪、钓鱼、溜冰等户外运动 和水有关的工作较容易。''', - "火":''' + "火":''' 夏天或热天气较走运 午月、巳月、马年和蛇年运气较好 上午九点至下午一点是吉时 @@ -208,7 +223,7 @@ 要常笑,注意心脏系统、血液循环、眼睛、额齿 多做打篮球、网球、排球、骑单车等户外运动 和火有关的工作较容易''', - "土":''' + "土":''' 春、夏、秋、冬四季交接之时段较走运 丑、辰、未、戌月和牛、龙、羊、狗年运气较好 上午二点、八点左右和下午二点、八点左右都是吉时 @@ -227,7 +242,7 @@ Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] zhi5 = {"子":{"癸":8}, - "丑":{"辛":1,"癸":2, "己":5}, + "丑":{"辛":1,"癸":2, "己":5}, "寅":{"戊":1,"丙":2, "甲":5}, "卯":{"乙":8}, "辰":{"癸":1,"乙":2, "戊":5}, @@ -278,10 +293,10 @@ } zhi_3hes = { - ("申", "子", "辰"): "化水", - ("巳", "酉", "丑"): "化金", - ("寅", "午", "戌"): "化火", - ("亥", "卯", "未"): "化木", + ("申", "子", "辰"): "化水 马在寅", + ("巳", "酉", "丑"): "化金 马在亥", + ("寅", "午", "戌"): "化火 马在申", + ("亥", "卯", "未"): "化木 马在巳", } zhi_huis = { @@ -333,4 +348,9 @@ zhi_zixings = ['辰', '午', '酉', '亥'] - +wenchang = {"甲":'巳', "乙":"亥", "丙":"戌", "丁":"辰", "戊":"申", "己":"午", + "庚": "寅", "辛":"未", "壬": "卯", "癸":"丑"} +wenxing = {"甲":'午', "乙":"巳", "丙":"申", "丁":"酉", "戊":"申", "己":"酉", + "庚": "戌", "辛":"亥", "壬": "寅", "癸":"卯"} +tianyin = {"甲":'寅', "乙":"亥", "丙":"戌", "丁":"酉", "戊":"申", "己":"未", + "庚": "午", "辛":"巳", "壬": "辰", "癸":"卯"} From 8fe86e55155a27a89d18d539f1834ea9a35414d3 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 6 Mar 2019 11:11:48 +0800 Subject: [PATCH 020/122] add shengxiao.py --- bazi/datas.py | 3 +++ bazi/shengxiao.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 bazi/shengxiao.py diff --git a/bazi/datas.py b/bazi/datas.py index 2aa1b6f..7fa9079 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -51,6 +51,9 @@ } +shengxiaos = bidict({ + "子":"鼠", "丑":"牛", "寅":"虎", "卯":"兔", "辰":"龙", "巳":"蛇", + "午":"马", "未":"羊", "申":"猴", "酉":"鸡", "戌":"狗", "亥":"猪"}) gan_desc = { diff --git a/bazi/shengxiao.py b/bazi/shengxiao.py new file mode 100644 index 0000000..54a2bac --- /dev/null +++ b/bazi/shengxiao.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# CreateDate: 2019-2-21 + +# -*- coding:utf-8 -*- + +import argparse +from datas import shengxiaos, zhi_atts + +def output(des, key): + print() + print(des, end='') + for item in zhi_atts[zhi][key]: + print(shengxiaos[item], end='') + +description = ''' +''' +parser = argparse.ArgumentParser(description=description, + formatter_class=argparse.RawTextHelpFormatter) +parser.add_argument('shengxiao', action="store", help=u'生肖') +parser.add_argument('--version', action='version', + version='%(prog)s 0.1 Rongzhong xu 2019 03 06 钉钉或微信pythontesting') +options = parser.parse_args() + +if options.shengxiao not in shengxiaos.inverse: + print("请输入正确的生肖:") + print(shengxiaos.inverse.keys()) +else: + print("你的生肖是:", options.shengxiao) + zhi = shengxiaos.inverse[options.shengxiao] + print("你的年支是:", zhi) + print("="*80) + print("生肖是八字的一小部分,有一定参考意义,但是不是全部。") + print("合婚请以八字为准,技术支持:钉钉或微信pythontesting") + print("="*80) + output("与你最合的生肖:", '合') + output("与你较合的生肖:", '会') + output("与你相冲的生肖:", '冲') + output("你刑的生肖:", '刑') + output("被你刑的生肖:", '被刑') + output("与你相害的生肖:", '害') + output("与你相破的生肖:", '害') + + + + From 4eb5e47b962da158a30a09391c2d262c08cf5d82 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 6 Mar 2019 11:15:52 +0800 Subject: [PATCH 021/122] modify shengxiao.py --- bazi/shengxiao.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bazi/shengxiao.py b/bazi/shengxiao.py index 54a2bac..9b61010 100644 --- a/bazi/shengxiao.py +++ b/bazi/shengxiao.py @@ -31,7 +31,7 @@ def output(des, key): zhi = shengxiaos.inverse[options.shengxiao] print("你的年支是:", zhi) print("="*80) - print("生肖是八字的一小部分,有一定参考意义,但是不是全部。") + print("合生肖是合八字的一小部分,有一定参考意义,但是不是全部。") print("合婚请以八字为准,技术支持:钉钉或微信pythontesting") print("="*80) output("与你最合的生肖:", '合') @@ -41,7 +41,3 @@ def output(des, key): output("被你刑的生肖:", '被刑') output("与你相害的生肖:", '害') output("与你相破的生肖:", '害') - - - - From b9064c753f2bf552dda508949aef8a2173923ddf Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 6 Mar 2019 11:22:24 +0800 Subject: [PATCH 022/122] modify shengxiao.py --- bazi/shengxiao.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/bazi/shengxiao.py b/bazi/shengxiao.py index 9b61010..5d551b3 100644 --- a/bazi/shengxiao.py +++ b/bazi/shengxiao.py @@ -3,8 +3,6 @@ # Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 # CreateDate: 2019-2-21 -# -*- coding:utf-8 -*- - import argparse from datas import shengxiaos, zhi_atts From 8e3506550b5ee720164a7c89123c77b1892584d0 Mon Sep 17 00:00:00 2001 From: andrew Date: Wed, 6 Mar 2019 22:38:55 +0800 Subject: [PATCH 023/122] Add nayin --- bazi/__pycache__/datas.cpython-36.pyc | Bin 0 -> 18102 bytes bazi/bazi.py | 6 +++++- bazi/datas.py | 18 ++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 bazi/__pycache__/datas.cpython-36.pyc diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..588623694c11e8d1493ffcc832a0da8512151d54 GIT binary patch literal 18102 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 kTQcl&E2Ly^u<_0oo8rPY!q^ Date: Wed, 6 Mar 2019 22:40:18 +0800 Subject: [PATCH 024/122] rm pyc --- bazi/__pycache__/datas.cpython-36.pyc | Bin 18102 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bazi/__pycache__/datas.cpython-36.pyc diff --git a/bazi/__pycache__/datas.cpython-36.pyc b/bazi/__pycache__/datas.cpython-36.pyc deleted file mode 100644 index 588623694c11e8d1493ffcc832a0da8512151d54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18102 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 kTQcl&E2Ly^u<_0oo8rPY!q^ Date: Thu, 7 Mar 2019 09:23:32 +0800 Subject: [PATCH 025/122] Add liuhe for zhi_atts in bazi/datas.py --- bazi/datas.py | 25 ++++++++++++------------- bazi/shengxiao.py | 16 +++++++++++++--- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/bazi/datas.py b/bazi/datas.py index aeed185..53e47d0 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -102,21 +102,20 @@ } zhi_atts = { - "子":{"冲":"午", "刑":"卯", "被刑":"卯", "合":("申","辰"), "会":("亥","丑"), '害':'未', '破':'酉'}, - "丑":{"冲":"未", "刑":"戌", "被刑":"未", "合":("巳","酉"), "会":("子","亥"), '害':'午', '破':'辰'}, - "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥'}, - "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午'}, - "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑'}, - "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","巳"), "会":("午","未"), '害':'寅', '破':'申'}, - "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯'}, - "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌'}, - "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳'}, - "酉":{"冲":"卯", "刑":"酉", "被刑":"酉", "合":("巳","丑"), "会":("申","戌"), '害':'戌', '破':'子'}, - "戌":{"冲":"辰", "刑":"未", "被刑":"丑", "合":("午","寅"), "会":("申","酉"), '害':'酉', '破':'未'}, - "亥":{"冲":"巳", "刑":"亥", "被刑":"亥", "合":("卯","未"), "会":("子","丑"), '害':'申', '破':'寅'}, + "子":{"冲":"午", "刑":"卯", "被刑":"卯", "合":("申","辰"), "会":("亥","丑"), '害':'未', '破':'酉', "六合":"丑",}, + "丑":{"冲":"未", "刑":"戌", "被刑":"未", "合":("巳","酉"), "会":("子","亥"), '害':'午', '破':'辰', "六合":"子",}, + "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥', "六合":"亥",}, + "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午', "六合":"戌",}, + "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑', "六合":"酉",}, + "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","巳"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申",}, + "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯', "六合":"未",}, + "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午",}, + "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳', "六合":"巳",}, + "酉":{"冲":"卯", "刑":"酉", "被刑":"酉", "合":("巳","丑"), "会":("申","戌"), '害':'戌', '破':'子', "六合":"辰",}, + "戌":{"冲":"辰", "刑":"未", "被刑":"丑", "合":("午","寅"), "会":("申","酉"), '害':'酉', '破':'未', "六合":"卯",}, + "亥":{"冲":"巳", "刑":"亥", "被刑":"亥", "合":("卯","未"), "会":("子","丑"), '害':'申', '破':'寅', "六合":"寅",}, } - gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", "庚":"金", "辛":"金", "壬":"水", "癸":"水"} diff --git a/bazi/shengxiao.py b/bazi/shengxiao.py index 5d551b3..59dabd0 100644 --- a/bazi/shengxiao.py +++ b/bazi/shengxiao.py @@ -31,11 +31,21 @@ def output(des, key): print("="*80) print("合生肖是合八字的一小部分,有一定参考意义,但是不是全部。") print("合婚请以八字为准,技术支持:钉钉或微信pythontesting") + print("以下为相合的生肖:") print("="*80) - output("与你最合的生肖:", '合') - output("与你较合的生肖:", '会') + output("与你三合的生肖:", '合') + output("与你六合的生肖:", '六合') + output("与你三会的生肖:", '会') + print() + print("="*80) + print("以下为不合的生肖:") + print("="*80) output("与你相冲的生肖:", '冲') output("你刑的生肖:", '刑') output("被你刑的生肖:", '被刑') output("与你相害的生肖:", '害') - output("与你相破的生肖:", '害') + output("与你相破的生肖:", '破') + print() + print("="*80) + print("如果生肖同时在你的合与不合中,则做加减即可。") + print("比如猪对于虎,有一个相破,有一六合,抵消就为平性。") \ No newline at end of file From 4e9a586e84a1696613228d569c6b6a91f511a42c Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 8 Mar 2019 18:16:48 +0800 Subject: [PATCH 026/122] Add summarys in bazi --- bazi/bazi.py | 124 ++++++++++++++++++++++++++++++++++------------ bazi/datas.py | 91 ++++++++++++++++++++++++---------- bazi/shengxiao.py | 2 +- bazi/sizi.py | 123 +++++++++++++++++++++++++++++++++++++-------- 4 files changed, 259 insertions(+), 81 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index 7f8240a..9132efb 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 # CreateDate: 2019-2-21 # -*- coding:utf-8 -*- @@ -12,6 +12,7 @@ from bidict import bidict from datas import * +from sizi import summarys def yinyang(item): if item in Gan: @@ -96,6 +97,8 @@ def yinyang(item): "{}{}{} [{}]".format(zhis.time, yinyang(zhis.time), ten_deities[me][zhis.time], ten_deities[gans.time][zhis.time]), )) + + for item in zhis: out = '' for gan in zhi5[item]: @@ -106,51 +109,86 @@ def yinyang(item): for item in zhus: print("{:^30s}".format(nayins[item]), end=' ') -print("\n") -print("="*140) -print("你属:", me, "特点:--", gan_desc[me],"\n") -print("年份:", zhis[0], "特点:--", zhi_desc[zhis[0]],"\n") -#print(dict(ten_deities[me])) -#print(ten_deities[me]) +print() +print("-"*140) # 子女分析 -print("\n\n子女状态:", end='') +boy = ten_deities[me].inverse['食'] if options.n else ten_deities[me].inverse['杀'] +girl = ten_deities[me].inverse['伤'] if options.n else ten_deities[me].inverse['官'] children = ['食','伤'] if options.n else ['官','杀'] -for item in children: - gan = ten_deities[me].inverse[item] - print(item, ": ", gan, "--", ten_deities[gan][zhis[0]], - ten_deities[gan][zhis[1]], ten_deities[gan][zhis[2]], " [", - ten_deities[gan][zhis[3]], ']\t\t', end='') +boy_state = "子:{} -- {} {} {} [{}]".format( + boy, ten_deities[boy][zhis[0]], ten_deities[boy][zhis[1]], + ten_deities[boy][zhis[2]], ten_deities[boy][zhis[3]] ) +girl_state = "女:{} -- {} {} {} [{}]".format( + girl, ten_deities[girl][zhis[0]], ten_deities[girl][zhis[1]], + ten_deities[girl][zhis[2]], ten_deities[girl][zhis[3]] ) # 对象状态 -print("\n\n对象状态:", end='') -peer = ['官','杀'] if options.n else ['财','偏财'] -for item in peer: - gan = ten_deities[me].inverse[item] - print(item, ": ", gan, "--", ten_deities[gan][zhis[0]], " [", - ten_deities[gan][zhis[1]], "]", ten_deities[gan][zhis[2]], - ten_deities[gan][zhis[3]], '\t\t', end='') +mate = ten_deities[me].inverse['官'] if options.n else ten_deities[me].inverse['财'] +lover = ten_deities[me].inverse['杀'] if options.n else ten_deities[me].inverse['偏财'] +mate_state = "对象:{} -- {} [{}] {} {}".format( + mate, ten_deities[mate][zhis[0]], ten_deities[mate][zhis[1]], + ten_deities[mate][zhis[2]], ten_deities[mate][zhis[3]] ) +lover_state = "情人:{} -- {} [{}] {} {}".format( + lover, ten_deities[lover][zhis[0]], ten_deities[lover][zhis[1]], + ten_deities[lover][zhis[2]], ten_deities[lover][zhis[3]] ) +print("{:<25s} {:<25s} {:<25} {:<25s}".format( + boy_state, girl_state, mate_state, lover_state)) + +# 父母状态 +father = ten_deities[me].inverse['偏财'] +mother = ten_deities[me].inverse['印'] +father_state = "父:{} -- {} [{}] {} {}".format( + father, ten_deities[father][zhis[0]], ten_deities[father][zhis[1]], + ten_deities[father][zhis[2]], ten_deities[father][zhis[3]] ) +mother_state = "母:{} -- {} [{}] {} {}".format( + mother, ten_deities[mother][zhis[0]], ten_deities[mother][zhis[1]], + ten_deities[mother][zhis[2]], ten_deities[mother][zhis[3]] ) + +# 兄弟姐妹状态 +brother = ten_deities[me].inverse['劫'] if options.n else ten_deities[me].inverse['比肩'] +sister = ten_deities[me].inverse['比肩'] if options.n else ten_deities[me].inverse['劫'] +brother_state = "兄弟:{} -- {} [{}] {} {}".format( + brother, ten_deities[brother][zhis[0]], ten_deities[brother][zhis[1]], + ten_deities[brother][zhis[2]], ten_deities[brother][zhis[3]] ) +sister_state = "姐妹:{} -- {} [{}] {} {}".format( + sister, ten_deities[sister][zhis[0]], ten_deities[sister][zhis[1]], + ten_deities[sister][zhis[2]], ten_deities[sister][zhis[3]] ) +print("{:<25s} {:<25s} {:<25} {:<25s}".format( + father_state, mother_state, brother_state, sister_state)) + +sum_index = ''.join([me, '日', *zhus[3]]) +if sum_index in summarys: + print("\n\n命") + print("=========================") + print(summarys[sum_index]) + +print("="*140) +print("你属:", me, "特点:--", gan_desc[me],"\n") +print("年份:", zhis[0], "特点:--", zhi_desc[zhis[0]],"\n") def check_subset(gans, db, desc): - flag = True + flag = False # 是否找到 for item in db: if set(item).issubset(gans): - if flag: + if not flag: print("\n\n{}:".format(desc)) print("="*60) - flag = False - print(item, db[item]) + flag = True + print(item, db[item]) + return flag check_subset(gans, gan_hes, '十干合') -check_subset(gans, gan_chongs, '十干冲') -check_subset(zhis, zhi_6hes, '地支六合') -check_subset(zhis, zhi_3hes, '地支三合') +check_subset(gans, gan_chongs, '十干冲 https://www.jianshu.com/p/ac958d44835f') +check_subset(zhis, zhi_6hes, '地支六合: 男子忌合绝,女人忌合贵。') +if not check_subset(zhis, zhi_3hes, '地支三合'): # 如果三合,没必要检查半合 + check_subset(zhis, zhi_half_3hes, '地支半合') check_subset(zhis, zhi_huis, '地支三会') -check_subset(zhis, zhi_chongs, '地支相冲') -check_subset(zhis, zhi_poes, '地支相破') -check_subset(zhis, zhi_haies, '地支相害') +check_subset(zhis, zhi_chongs, '地支相冲 https://www.jianshu.com/p/ac958d44835f') +check_subset(zhis, zhi_poes, '地支相破(破煞): 少年灾滞,财产耗散,兼有折伤之灾。') +check_subset(zhis, zhi_haies, '地支相害 六亲损害 再见羊刃、劫煞、官府,为灾尤甚。日时、女命尤忌') check_subset(zhis, zhi_xings, '地支相刑') @@ -173,6 +211,19 @@ def check_subset(gans, db, desc): print("=========================") +# 三奇 +flag = False +if ['乙','丙', '丁'] == list(gans[:3]) or ['乙','丙', '丁'] == list(gans[1:]): + flag = True +if ['甲','戊', '庚'] == list(gans[:3]) or ['甲','戊', '庚'] == list(gans[1:]): + flag = True +if ['辛','壬', '癸'] == list(zhis[:3]) or ['辛','壬', '癸'] == list(zhis[1:]): + flag = True + + +if flag: + print("\n\n三奇:参见https://www.jianshu.com/p/d014a054c38e") + # 将星分析 me_zhi = zhis[2] other_zhis = zhis[:2] + zhis[3:] @@ -228,19 +279,24 @@ def check_subset(gans, db, desc): # 咸池 桃花 flag = False +taohuas = [] year_zhi = zhis[0] if me_zhi in ("申", "子", "辰") or year_zhi in ("申", "子", "辰"): if "酉" in zhis: flag = True + taohuas.append("酉") elif me_zhi in ("丑", "巳", "酉") or year_zhi in ("丑", "巳", "酉"): if "午" in other_zhis: flag = True + taohuas.append("午") elif me_zhi in ("寅", "午", "戌") or year_zhi in ("寅", "午", "戌"): if "卯" in other_zhis: - flag = True + flag = True + taohuas.append("卯") elif me_zhi in ("亥", "卯", "未") or year_zhi in ("亥", "卯", "未"): if "子" in other_zhis: flag = True + taohuas.append("子") if flag: print("\n\n咸池(桃花): 墙里桃花,煞在年月;墙外桃花,煞在日时;") @@ -250,7 +306,8 @@ def check_subset(gans, db, desc): 靡所不为;与元辰并,更临生旺者,多得匪人为妻;与贵人建禄并,多因油盐酒货得生, 或因妇人暗昧之财起家,平生有水厄、痨瘵之疾,累遭遗失暗昧之灾。此人入命,有破无成, 非为吉兆,妇人尤忌之。 - 咸池非吉煞,日时与水命遇之尤凶。''') + 咸池非吉煞,日时与水命遇之尤凶。''') + print(taohuas, zhis) # 禄分析 flag = False @@ -296,7 +353,7 @@ def check_subset(gans, db, desc): print("恭喜,有贵人相助!", guan_list) # 检查天福贵人 - if lus[me] in guan_list: + if ten_deities[me].inverse['建'] in guan_list: print("天福贵人:主科名巍峨,官职尊崇,多掌丝纶文翰之美!") # 岁德正官 @@ -365,3 +422,4 @@ def check_subset(gans, db, desc): print("\n\n五行缺{}的建议".format(short)) print("=========================") print("{}".format(gan_health[short])) + diff --git a/bazi/datas.py b/bazi/datas.py index 53e47d0..5153d39 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 # CreateDate: 2019-2-21 import collections @@ -16,7 +16,7 @@ ('壬', '子'): '桑柘木', ('癸', '丑'): '桑柘木', ('庚', '寅'): '松柏木', ('辛', '卯'): '松柏木', ('戊', '辰'): '大林木', ('己', '巳'): '大林木', ('壬', '午'): '杨柳木', ('癸', '未'): '杨柳木', ('庚', '申'): '石榴木', ('辛', '酉'): '石榴木', ('戊', '戌'): '平地木', ('己', '亥'): '平地木', - ('庚', '子'): '壁上土', ('辛', '丑'): '壁上土', ('戊', '寅'): '城头土', ('已', '卯'): '城头土', + ('庚', '子'): '壁上土', ('辛', '丑'): '壁上土', ('戊', '寅'): '城头土', ('己', '卯'): '城头土', ('丙', '辰'): '砂中土', ('丁', '巳'): '砂中土', ('庚', '午'): '路旁土', ('辛', '未'): '路旁土', ('戊', '申'): '大驿土', ('己', '酉'): '大驿土', ('丙', '戌'): '屋上土', ('丁', '亥'): '屋上土', ('丙', '子'): '涧下水', ('丁', '丑'): '涧下水', ('甲', '寅'): '大溪水', ('乙', '卯'): '大溪水', @@ -125,8 +125,6 @@ "庚":('丁',"午", "戌","未"), "辛":('丙',"寅",'巳'), "壬":('己',"午",'未','丑'), "癸":('戊',"寅","辰",'巳','申','戌'),} -lus = {"甲":'寅', "乙":"卯", "丙":"巳", "丁":"午", "戊":"巳", "己":"午", - "庚": "申", "辛":"酉", "壬": "亥", "癸":"子"} lu_types = { "甲":{('丙','寅'):'福星禄 名位禄 吉', ('戊','寅'):'伏马禄 吉', ('庚','寅'):'破禄,半吉半凶', ('壬','寅'):'正禄,带截路空亡,必为僧道 不吉', @@ -261,8 +259,9 @@ } Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] -zhi5 = {"子":{"癸":8}, - "丑":{"辛":1,"癸":2, "己":5}, +zhi5 = { + "子":{"癸":8}, + "丑":{"辛":1,"癸":2, "己":5}, "寅":{"戊":1,"丙":2, "甲":5}, "卯":{"乙":8}, "辰":{"癸":1,"乙":2, "戊":5}, @@ -282,11 +281,22 @@ rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"] gan_hes = { - ("甲", "己"): "中正之合 化土", - ("乙", "庚"): "仁义之合 化金", - ("丙", "辛"): "威制之合 化水", - ("丁", "壬"): "淫慝之合 化木", - ("戊", "癸"): "无情之合 化火", + ("甲", "己"): "中正之合 化土 尊崇重大,宽厚平直。如带煞而五行无气则多嗔好怒,性梗不可屈", + ("乙", "庚"): ''' + 仁义之合 化金 果敢有守, 不惑柔佞,周旋唯仁,进退唯义。 + 五行生旺则骨秀形清,若死个性果敢刚健,很重义气。若四柱中有七杀,或逢死绝者,勇而无谋。 + 绝带煞则使气好勇,体貌不扬,自是非人。甲己、乙庚之合, 妇人不忌。''', + ("丙", "辛"): ''' + 威制之合 化水 仪表威肃,人多畏惧,酷毒,好贿喜淫,若带煞或五行死绝则寡恩少义,无情之人。 + 妇人得之,与天中、大耗、咸池相并者,貌美声卑,夭冶而淫。''', + ("丁", "壬"): ''' + 淫慝之合 化木 眼明神娇, 多情易动,不事高洁,习下无去,枕欢溺色,于我则吝,于彼则贪, + 若五行死绝或带煞,见咸池、大耗、天中自败,有淫污家风之丑;亲厚小人,侮慢君子,贪婪妄作, + 必胜而后已。妇人淫邪奸慝,易挑易诱,多招玷辱,或年高而嫁少夫,或年幼而配老夫, + 或先贱而后良,或先良而后贱。''', + ("戊", "癸"): ''' + 无情之合 化火 合而无情,主人或好或丑,如戊得癸则娇媚,姿美得所,男子娶少妇,妇人嫁美夫; + 若癸得戊则形容古朴,老相俗尘,男子娶老妻,妇人嫁老夫''', } gan_chongs = { @@ -304,12 +314,12 @@ zhi_6hes = { - ("子", "丑"): "化土", - ("寅", "亥"): "化木", - ("卯", "戌"): "化火", - ("辰", "酉"): "化金", - ("巳", "申"): "化水", - ("午", "未"): "化土", + ("子", "丑"): "化土 子合丑福轻,丑合子福盛", + ("寅", "亥"): "化木 寅合亥福清,亥合寅福慢", + ("卯", "戌"): "化火 戌合卯福虚,卯合戌福厚", + ("辰", "酉"): "化金 辰合酉福弱,酉合辰大利", + ("巳", "申"): "化水 已合申福慢,申合巳官气盛", + ("午", "未"): "化土 午合未福慢,未合午大利", } zhi_3hes = { @@ -319,6 +329,21 @@ ("亥", "卯", "未"): "化木 马在巳", } +zhi_half_3hes = { + ("申", "子"): "化水 马在寅", + ("子", "辰"): "化水 马在寅", + ("申", "辰"): "化水 马在寅", + ("巳", "酉"): "化金 马在亥", + ("酉", "丑"): "化金 马在亥", + ("巳", "丑"): "化金 马在亥", + ("寅", "午"): "化火 马在申", + ("午", "戌"): "化火 马在申", + ("寅", "戌"): "化火 马在申", + ("亥", "卯"): "化木 马在巳", + ("亥","未"): "化木 马在巳", + ( "卯", "未"): "化木 马在巳", +} + zhi_huis = { ("亥", "子", "丑"): "化水", ("寅", "卯", "辰"): "化木", @@ -338,19 +363,35 @@ zhi_poes = { ("子", "酉"): "相破", ("午", "卯"): "相破", - ("巳", "申"): "相破", - ("寅", "亥"): "相破", + #("巳", "申"): "相破", + #("寅", "亥"): "相破", ("辰", "丑"): "相破", ("戌", "未"): "相破", } zhi_haies = { - ("子", "未"): "未害子 谓未旺土,亥子旺水,名势家相害。故子见未则为害。", - ("丑", "午"): "午害丑 谓午以旺火凌丑死金,名官鬼相害。故丑见午,而午更带丑干之真鬼则为害尤甚。", - ("寅", "巳"): "互相相害", - ("卯", "辰"): "卯害辰 谓卯以旺木凌辰死土,此以少凌长相害。故辰见卯,而卯更带辰干真鬼则其害尤甚。", - ("申", "亥"): "互相相害 谓名恃临官,竞嫉才能,争进相害。故申见亥,亥见申均为害,更纳音相克者重。", - ("酉", "戌"): "戌害酉 戌以死火害酉旺金,此嫉妒相害,故酉人见戌则凶,戌人见酉无灾;若乙酉人得戊戌,乙为真金,戊为真火,为害尤甚。", + ("子", "未"): ''' + 未害子 谓未旺土,亥子旺水,名势家相害。故子见未则为害。 + 不利六亲骨肉。入贵格多妻妾之累,入贱格孤独无倚。''', + ("丑", "午"): ''' + 午害丑 谓午以旺火凌丑死金,名官鬼相害。故丑见午,而午更带丑干之真鬼则为害尤甚。 + 生旺,主好胜多怒,严毅不忍;死绝主毒害、伤惨、倾覆之事。入贵格 则主大权,司刑典狱; + 入贱格则谋生于不义之地。''', + ("寅", "巳"): ''' + 互相相害 生旺则主神洁貌俊,好争夺,喜激作;值死绝则多谋少成,强学人做事,兀兀趋进不厌。 + 入贵格则有操守, 善机权;入贱格则多诈、爱贫、鄙吝。''', + ("卯", "辰"): ''' + 卯害辰 谓卯以旺木凌辰死土,此以少凌长相害。故辰见卯,而卯更带辰干真鬼则其害尤甚。 + 生旺,主好胜多怒,严毅不忍;死绝主毒害、伤惨、倾覆之事。入贵格 则主大权,司刑典狱; + 入贱格则谋生于不义之地。''', + ("申", "亥"): ''' + 互相相害 谓名恃临官,竞嫉才能,争进相害。故申见亥,亥见申均为害,更纳音相克者重。 + 生旺则主神洁貌俊,好争夺,喜激作;值死绝则多谋少成,强学人做事,兀兀趋进不厌。 + 入贵格则有操守, 善机权;入贱格则多诈、爱贫、鄙吝。''', + ("酉", "戌"): ''' + 戌害酉 戌以死火害酉旺金,此嫉妒相害,故酉人见戌则凶,戌人见酉无灾; + 若乙酉人得戊戌,乙为真金,戊为真火,为害尤甚。 生旺,不容物,多刚戾;死绝酷狠,憎善妒能。 + 入贵格 罗怯无辜,结构入讼,颇多奸佞,入贱格残害、阴狡、性佞、 不良。''', } zhi_xings = { diff --git a/bazi/shengxiao.py b/bazi/shengxiao.py index 59dabd0..cf42f8f 100644 --- a/bazi/shengxiao.py +++ b/bazi/shengxiao.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 # CreateDate: 2019-2-21 import argparse diff --git a/bazi/sizi.py b/bazi/sizi.py index 9cb9c22..35e5740 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -3,26 +3,105 @@ # Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 # CreateDate: 2019-2-21 -{ -'甲日甲子':''' -六甲日生甲子时,败中印绶官生至; -月通木气不寻常,反此而言虚名利。 +summarys = { + '甲日甲子': ''' + 败中印绶官生至;月通木气不寻常,反此而言虚名利。 + 子为癸水,甲在子的状态为[沐浴],但为印。如果财己克印,通月气,贵。否则,秀而不实。 + ''', + + '甲日乙丑': ''' + 劫财羊刃不宜有;柱中逢火带辛金,制伏和平贵亦久。 + 乙克丑中的财;乙丑为海中金,若年日时合成火局,制伏金,主德性纯和而贵;无火凶狠;如合水局凶恶损家。 + 贵人天乙被乙劫财伤害。火局南方运贵,金神制伏相当。木枯水盛且平常,背祖离乡晚旺。 + ''', + + '甲日丙寅': ''' + 甲木寅上健旺,丙为食神, 且通火气, 寿星在位 + 通火木月气者贵,忌见官星及申冲禄。 + 甲丙相邀入虎乡,福星坐禄显文章;运逢四柱无伤害,早晚陛迁至宪堂。 + 若逢辰戌,两三妻,禄主朝元富贵。丁午庚申减福,无官惹绊为奇。 + 生来贵显有人提,此命先难后易。 + ''', + + '甲日丁卯': ''' + 伤官羊刃真当恼;纵然月气有扶持,未免为人性不好。 + 乙木克己财,为人凶狠。若柱透辛,伤官见官,刑害百端,运气凶险,不得善终; + 柱有七煞合刃,行财官印绶,大贵。 + 甲逢丁火化为灰,父母兄弟难倚。祖业田财聚散,妻儿总有刑亏。运行官煞始为奇,性格或嗔或喜。 + ''', + + '甲日戊辰': ''' + 天财坐库会滋身;富商巨贾田园盛,月带辛金名利成。时上偏财,遇龙守库。主为商贾发财,田园广盛。 + 八月带禄,财官俱有,富贵双全。忌比肩、羊刃夺财。 + 时上偏财不用多,干枝内外细搜罗;运通财旺官生至,运拙身衰恐受磨。甲日戊辰时遇,柱中要戌相扶。 + 辛庚透干贵显,壬癸滋助不枯。只怕比劫弟兄多,岁运逢之有祸。 + ''', + + '甲日己巳': ''' + 病中财物实难任;月通火气方为贵,若是身衰亦不禁。 + 食旺身衰,甲木巳上病,虽有暗戊为财,丙为食,不通月气,难任其福。 + 甲己为平头煞,生逢春月,身旺财衰,主骨肉参商,平生作事,弄巧成拙。 + 己巳金神有火制伏,巳酉丑合局,行南方运,名重禄高。柱不见火,残害化气,主凶恶暴亡。 + + 甲己中央作土神,时逢辰已脱埃尘;局中岁运趋炎火,显远功名富贵人。 + 甲日时逢己巳,火临土厚无光。旱苗得雨叶枝强,火局金神旺相。 + 进士有名无实,常人改祖番庄。为人性格不寻常,运至晚年气象。 + ''', + + '甲日庚午': ''' + 死地逢鬼,甲木死于午,午头见庚为鬼,不通月气,无救助者,带疾寿促。 + 月逢丙寅,身旺庚绝则吉,亦主有始无终。若通木气,主方面,通水气,行东方运,止郎官。 + + 午时庚申是偏官,制伏相宜不等闲;身弱煞强无食见,平生谋望主艰难。 + 甲日时逢庚午,柱中喜见寅申。身强煞浅转精神,父母雁行不顺。 + 妻子早年刑害,晚年出众超群。平生反复好翻腾,先破后成之命。 + ''', + + '甲日辛未': ''' + 甲日辛未时,时贵逢官,甲见辛为官,未有天乙贵;己为财,未中己土得气,若通木气月, + 有寄托者富;通土气月者,富贵双全。 + + 甲逢辛未是财官,平步青云路不难;不比退毛鸡化凤,得时飞上彩云路。 + 甲日时逢辛未,财官守库相扶。贵人财禄是良图,初苦未终荣富。君子迁官进职,常人丰厚充腴。 + 刑冲破害柱中无,定得青云之路。 + ''', + + '甲日壬申': ''' + 六甲生时遇壬申,明伤暗鬼坐其身;柱无丙戊秋冬旺,坎坷飘流无定人。 + 甲日壬申时,甲木绝在申,申土壬水长生,庚金建禄,明袅暗鬼,甲旺化鬼为官,犹不免凶暴。 + 若生秋庚旺,生冬壬旺,柱无丙戊制伏,漂流之象。若巳午月,大吉。强横透庚,作煞论,运行北方,贵。 + + 甲日时逢喜遇申,偏官偏印怕刑冲;欲求名利终难定,有救须教运气通。 + 甲日时逢壬申,倒食暗鬼相侵。生逢身旺主昌荣,身弱性情不定。 + 雁侣六亲少力,谋为自立自成。运行吉地显声名,运弱平常之命。 + ''', + + '甲日癸酉': ''' + 暗官明印未希奇;柱中有火无刑破,元命胎生贵可知。 + 甲日癸酉时,胎生元命,甲木酉上受胎,为甲生气,明癸为印,暗辛为官,有己土破印,不贵。 + 酉为金神,若柱有寅戌,通火气者,德性纯厚而贵。无火见水,凶暴残疾。 + 甲日交通癸酉时,金神火局两相宜;运行南地无刑破,富贵荣华事事奇。 + 甲日时逢癸酉,为人富贵双全。三奇发福屡升迁,上下相和贵显。 + 君子寒门将相,常人置立田园。无伤无破是英贤,此命定居台宪。 + ''', + + '甲日甲戌': ''' + 六甲日生时甲戌,木遭火局气不舒;好善福平常,父母并伤。 + 甲日甲戌时,甲用丙为食,辛为官,戌上食神入火局,辛有余气,身被火焚,为人好善,平常衣禄。 + 甲以戊为父,癸为母,戌上旺甲伤戊,内有暗戊伤癸,戊癸受克,难为二亲。 -甲日甲子时,虽甲败在子,暗有癸水生气印绶,兼有官生 -其印,若己土破印,通月气,贵。否则,秀而不实。 -''' -'甲子日甲子时':'''子遥巳格,年月无庚辛申酉,丑绊午冲, -离祖自立,贵。若年月俱寅,逢申酉运,大富后退财。子亥卯 -未年月,行西运,贵。甲辰月亦贵。酉月,只以正官格论,大 -贵。巳午戌月,平常。午月,甲死子冲,尤不吉。乙卯、乙巳 -月,主法死。 ''', -'甲子日甲子时':''' - 甲寅日甲子时,拱丑中辛,贵。年月无庚辛申酉丑未,大 -贵。再甲寅月,孤克,惟憎道可。亥子年月,四品贵。午月, -行东北方运,亦贵。如酉丑巳等月,明有官煞,柱但有印,俱 -贵。卯未,身太旺,未免刑伤。乙巳月,受刑。丁亥月,旺中 -恶死。 - 甲辰日甲子时,若水位年月,水泛木浮,主移根换叶;申 - - -} + 时逢甲戌比肩逢,库有天禄火气冲;鸡鸭同鸣皆聚散,到头心志不相同。 + 甲日时通甲戌,比肩带禄相逢。天孤仓库隐其中,酉丑辰支取用。 + 无钥冲刑开破,立身多学少成。柱金木火旺火生,先暗后明之命。 + ''', + + '甲日乙亥': ''' + 六甲日生时乙亥,羊刃反伤为祸害;财官辛戊不相逢,只恐功名不亨泰。 + 甲日乙亥时,甲木亥上长生有旺,乙为刃,制克学堂,壬为倒食,亥上建禄。 + 甲以金为官,戊己为财,辛金沐浴,戊己衰绝,不能作福。 + 生巳酉丑月及见辛,柱有戊字,贵。余虽聪明,功名不遂,艺术人也。 + + 甲日时逢乙亥强,有官有印不寻常;时来自有高人荐,运至财乡大显扬。 + 甲日时逢乙亥,就中壬水相生。时临帝座紫微宫,子嗣螟蛉得用。父母雁行少力,花开结子。 + ''', +} \ No newline at end of file From a9d6ddb277521324d198d2ba98e9a34254996a1c Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 11 Mar 2019 07:25:38 +0800 Subject: [PATCH 027/122] Add score for gan in bazi --- bazi/bazi.py | 87 +++++++++++++++++++++++++++++++--------------------- bazi/sizi.py | 4 +-- 2 files changed, 54 insertions(+), 37 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index 9132efb..b2d9c73 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -66,6 +66,24 @@ def yinyang(item): me = gans.day zhus = [item for item in zip(gans, zhis)] + +# 计算五行分数 http://www.131.com.tw/word/b3_2_14.htm + +scores = {"金":0, "木":0, "水":0, "火":0, "土":0} +gan_scores = {"甲":0, "乙":0, "丙":0, "丁":0, "戊":0, "己":0, "庚":0, "辛":0, + "壬":0, "癸":0} + +for item in gans: + scores[gan5[item]] += 5 + gan_scores[item] += 5 + + +for item in list(zhis) + [zhis.month]: + for gan in zhi5[item]: + scores[gan5[gan]] += zhi5[item][gan] + gan_scores[gan] += zhi5[item][gan] + + if not options.b: print("\n日期:") print("======================================") @@ -81,12 +99,12 @@ def yinyang(item): print("{:^28s}{:^28s}{:^28s}{:^28s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) print("-"*140) print("{:^30s}{:^30s}{:^30s}{:^30s}".format( - '{}{}{} [{}]'.format( + '{}{}{}5 [{}]'.format( gans.year, yinyang(gans.year), gan5[gans.year], ten_deities[me][gans.year]), - '{}{}{} [{}]'.format( + '{}{}{}5 [{}]'.format( gans.month, yinyang(gans.month), gan5[gans.month], ten_deities[me][gans.month]), - '{}{}{} [{}]'.format(me, yinyang(me),gan5[me], '自己'), - '{}{}{} [{}]'.format(gans.time, yinyang(gans.time), gan5[gans.time], ten_deities[me][gans.time]), + '{}{}{}5 [{}]'.format(me, yinyang(me),gan5[me], '自己'), + '{}{}{}5 [{}]'.format(gans.time, yinyang(gans.time), gan5[gans.time], ten_deities[me][gans.time]), )) print("{:^30s}{:^30s}{:^30s}{:^30s}".format( "{}{}{} [{}]".format(zhis.year, yinyang(zhis.year), @@ -101,8 +119,11 @@ def yinyang(item): for item in zhis: out = '' + multi = 2 if item == zhis.month else 1 + for gan in zhi5[item]: - out = out + "{}{}{}{} ".format(gan, gan5[gan], zhi5[item][gan], ten_deities[me][gan]) + out = out + "{}{}{}{} ".format(gan, gan5[gan], zhi5[item][gan]*multi, + ten_deities[me][gan]) print("{:^26s}".format(out), end=' ') print() @@ -110,7 +131,15 @@ def yinyang(item): print("{:^30s}".format(nayins[item]), end=' ') print() + + + print("-"*140) +for item in gan_scores: + print("{}[{}]-{} ".format( + item, ten_deities[me][item], gan_scores[item]), end=' ') + +print("\n") # 子女分析 boy = ten_deities[me].inverse['食'] if options.n else ten_deities[me].inverse['杀'] @@ -198,17 +227,12 @@ def check_subset(gans, db, desc): if ten_deities[me].inverse[key] in zhis: print("\n羊刃:", me, ten_deities[me].inverse[key]) - print("=========================") - print("羊刃重重又见禄,富贵饶金玉。 官、印相助福相资。") - print("专羊刃,主眼露性急,凶暴害物,亲近恶党,生旺稍可,死绝尤甚") - print("在五行败者逢之,多患瘰疠或瘴疠、金刃之灾,不论贵贱,多冗杂劳迫,少得安逸") - print("六甲生人逢乙卯、丁卯,为真羊刃。若重犯,主残疾,官禄失退则散在晚年") - print("运行羊刃,财物耗散") - print("\n有刃头财,如甲人见己卯之类,谓之销 煞 主财帛歇灭,常人以屠沽刀锯等事为业,或因被盗而致命者。") - print("有刃头鬼,如甲人见辛卯之类,谓之持刃煞,主人不令终,虽入贵格,亦不可测。甲乙人见之,尤紧。多脑疽发背而终。") - print("有羊刃相蚀,如甲寅虎、兔、甲戊狗兔之类(),见所蚀年月稍可,日时至危。若见两重,更值空亡,设非相蚀,亦犯流配至老,主不善终?") - print("有揽辔澄清格,谓贵人乘马而前视羊刃,犹马头带剑之义。") - print("=========================") + print("======================参考:https://www.jianshu.com/p/c503f7b3ed04") + if ten_deities[me].inverse['冠带']: + print("羊刃重重又见禄,富贵饶金玉。 官、印相助福相资。") + else: + print("劳累命!") + # 三奇 @@ -219,7 +243,7 @@ def check_subset(gans, db, desc): flag = True if ['辛','壬', '癸'] == list(zhis[:3]) or ['辛','壬', '癸'] == list(zhis[1:]): flag = True - + if flag: print("\n\n三奇:参见https://www.jianshu.com/p/d014a054c38e") @@ -317,14 +341,14 @@ def check_subset(gans, db, desc): print("\n\n禄分析:") print("=========================") print(item,lu_types[me][item]) - - + + # 文昌贵人 if wenchang[me] in zhis: - print("\n\n文昌贵人: ") - print("=========================") - print(me, wenchang[me]) - + print("\n\n文昌贵人: ") + print("=========================") + print(me, wenchang[me]) + # 文星贵人 if wenxing[me] in zhis: print("\n\n文星贵人: ") @@ -336,9 +360,9 @@ def check_subset(gans, db, desc): print("\n\n天印贵人: 此号天印贵,荣达受皇封") print("=========================") print(me, tianyin[me]) - - - + + + # 官分析 guan_list = [] for item in gans + zhis: @@ -404,16 +428,8 @@ def check_subset(gans, db, desc): print("=========================") print(zhus[2]) -# 计算五行分数 http://www.131.com.tw/word/b3_2_14.htm - -scores = {"金":0, "木":0, "水":0, "火":0, "土":0} -for item in gans: - scores[gan5[item]] += 5 - -for item in list(zhis) + [zhis.month]: - for gan in zhi5[item]: - scores[gan5[gan]] += zhi5[item][gan] + print("\n\n五行分数") print("="*60) @@ -423,3 +439,4 @@ def check_subset(gans, db, desc): print("=========================") print("{}".format(gan_health[short])) +print(gan_scores) diff --git a/bazi/sizi.py b/bazi/sizi.py index 35e5740..3073420 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -5,8 +5,8 @@ summarys = { '甲日甲子': ''' - 败中印绶官生至;月通木气不寻常,反此而言虚名利。 - 子为癸水,甲在子的状态为[沐浴],但为印。如果财己克印,通月气,贵。否则,秀而不实。 + 甲日甲子时,虽甲败在子,暗有癸水生气印绶,兼有官(海中金)生其印,若己土破印,通月气,贵。 + 否则,秀而不实。 -- 如果有己土化比肩为佳。 ''', '甲日乙丑': ''' From 06fbaed88bd21e19e5cbdb28795b4491ef0201a5 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 11 Mar 2019 12:45:04 +0800 Subject: [PATCH 028/122] mv wuhang score up in bazi.py --- bazi/bazi.py | 17 ++++++----------- bazi/sizi.py | 10 ++++++++++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index b2d9c73..97df08a 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -140,6 +140,8 @@ def yinyang(item): item, ten_deities[me][item], gan_scores[item]), end=' ') print("\n") +print(scores) +print("\n") # 子女分析 boy = ten_deities[me].inverse['食'] if options.n else ten_deities[me].inverse['杀'] @@ -429,14 +431,7 @@ def check_subset(gans, db, desc): print(zhus[2]) - - -print("\n\n五行分数") -print("="*60) -print(scores) -short = min(scores, key=scores.get) -print("\n\n五行缺{}的建议".format(short)) -print("=========================") -print("{}".format(gan_health[short])) - -print(gan_scores) +#short = min(scores, key=scores.get) +#print("\n\n五行缺{}的建议".format(short)) +#print("=========================") +#print("{}".format(gan_health[short])) diff --git a/bazi/sizi.py b/bazi/sizi.py index 3073420..95f587e 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -101,6 +101,16 @@ 甲以金为官,戊己为财,辛金沐浴,戊己衰绝,不能作福。 生巳酉丑月及见辛,柱有戊字,贵。余虽聪明,功名不遂,艺术人也。 + 甲日时逢乙亥强,有官有印不寻常;时来自有高人荐,运至财乡大显扬。 + 甲日时逢乙亥,就中壬水相生。时临帝座紫微宫,子嗣螟蛉得用。父母雁行少力,花开结子。 + ''', + + '甲日乙亥': ''' + 六甲日生时乙亥,羊刃反伤为祸害;财官辛戊不相逢,只恐功名不亨泰。 + 甲日乙亥时,甲木亥上长生有旺,乙为刃,制克学堂,壬为倒食,亥上建禄。 + 甲以金为官,戊己为财,辛金沐浴,戊己衰绝,不能作福。 + 生巳酉丑月及见辛,柱有戊字,贵。余虽聪明,功名不遂,艺术人也。 + 甲日时逢乙亥强,有官有印不寻常;时来自有高人荐,运至财乡大显扬。 甲日时逢乙亥,就中壬水相生。时临帝座紫微宫,子嗣螟蛉得用。父母雁行少力,花开结子。 ''', From cde1a36dcb40e03a15cc06bdd81b54876073a188 Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 12 Mar 2019 09:23:32 +0800 Subject: [PATCH 029/122] Add kongwang in bazi --- bazi/bazi.py | 8 +- bazi/datas.py | 375 +++++-------------------------------------------- bazi/ganzhi.py | 346 +++++++++++++++++++++++++++++++++++++++++++++ bazi/shen.py | 5 + bazi/sizi.py | 45 ++++-- 5 files changed, 434 insertions(+), 345 deletions(-) create mode 100644 bazi/ganzhi.py create mode 100644 bazi/shen.py diff --git a/bazi/bazi.py b/bazi/bazi.py index 97df08a..bc7891e 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -106,6 +106,8 @@ def yinyang(item): '{}{}{}5 [{}]'.format(me, yinyang(me),gan5[me], '自己'), '{}{}{}5 [{}]'.format(gans.time, yinyang(gans.time), gan5[gans.time], ten_deities[me][gans.time]), )) + +empty = empties[zhus[0]] print("{:^30s}{:^30s}{:^30s}{:^30s}".format( "{}{}{} [{}]".format(zhis.year, yinyang(zhis.year), ten_deities[me][zhis.year], ten_deities[gans.year][zhis.year]), @@ -132,6 +134,11 @@ def yinyang(item): print() +for item in empty: + if item in zhis: + print("空亡", item) + break + print("-"*140) @@ -141,7 +148,6 @@ def yinyang(item): print("\n") print(scores) -print("\n") # 子女分析 boy = ten_deities[me].inverse['食'] if options.n else ten_deities[me].inverse['杀'] diff --git a/bazi/datas.py b/bazi/datas.py index 5153d39..b7da565 100644 --- a/bazi/datas.py +++ b/bazi/datas.py @@ -6,6 +6,8 @@ import collections from bidict import bidict +from ganzhi import * + nayins = { ('甲', '子'): '海中金', ('乙', '丑'): '海中金', ('壬', '寅'): '金泊金', ('癸', '卯'): '金泊金', ('庚', '辰'): '白蜡金', ('辛', '巳'): '白蜡金', ('甲', '午'): '砂中金', ('乙', '未'): '砂中金', @@ -24,106 +26,45 @@ ('甲', '申'): '井泉水', ('乙', '酉'): '井泉水', ('壬', '戌'): '大海水', ('癸', '亥'): '大海水', } -Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] -ten_deities = { - '甲':bidict({'甲':'比肩', "乙":'劫', "丙":'食', "丁":'伤', "戊":'偏财', - "己":'财', "庚":'杀', "辛":'官', "壬":'偏印', "癸":'印', "子":'沐浴', - "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', - "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), - '乙':bidict({'甲':'劫', "乙":'比肩', "丙":'伤', "丁":'食', "戊":'财', - "己":'偏财', "庚":'官', "辛":'杀', "壬":'印',"癸":'偏印', "子":'病', - "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', - "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), - '丙':bidict({'丙':'比肩', "丁":'劫', "戊":'食', "己":'伤', "庚":'偏财', - "辛":'财', "壬":'杀', "癸":'官', "甲":'偏印', "乙":'印',"子":'胎', - "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', - "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), - '丁':bidict({'丙':'劫', "丁":'比肩', "戊":'伤', "己":'食', "庚":'财', - "辛":'偏财', "壬":'官', "癸":'杀', "甲":'印',"乙":'偏印', "子":'绝', - "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', - "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), - '戊':bidict({'戊':'比肩', "己":'劫', "庚":'食', "辛":'伤', "壬":'偏财', - "癸":'财', "甲":'杀', "乙":'官', "丙":'偏印', "丁":'印',"子":'胎', - "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', - "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), - '己':bidict({'戊':'劫', "己":'比肩', "庚":'伤', "辛":'食', "壬":'财', - "癸":'偏财', "甲":'官', "乙":'杀', "丙":'印',"丁":'偏印',"子":'绝', - "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', - "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), - '庚':bidict({'庚':'比肩', "辛":'劫', "壬":'食', "癸":'伤', "甲":'偏财', - "乙":'财', "丙":'杀', "丁":'官', "戊":'偏印', "己":'印',"子":'死', - "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', - "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), - '辛':bidict({'庚':'劫', "辛":'比肩', "壬":'伤', "癸":'食', "甲":'财', - "乙":'偏财', "丙":'官', "丁":'杀', "戊":'印', "己":'偏印', "子":'长生', - "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', - "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), - '壬':bidict({'壬':'比肩', "癸":'劫', "甲":'食', "乙":'伤', "丙":'偏财', - "丁":'财', "戊":'杀', "己":'官', "庚":'偏印', "辛":'印',"子":'帝旺', - "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', - "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), - '癸':bidict({'壬':'劫', "癸":'比肩', "甲":'伤', "乙":'食', "丙":'财', - "丁":'偏财', "戊":'官', "己":'杀', "庚":'印',"辛":'偏印', "子":'建', - "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', - "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), - -} - -shengxiaos = bidict({ - "子":"鼠", "丑":"牛", "寅":"虎", "卯":"兔", "辰":"龙", "巳":"蛇", - "午":"马", "未":"羊", "申":"猴", "酉":"鸡", "戌":"狗", "亥":"猪"}) - - -gan_desc = { - "甲":'''雷龙 梁栋 禄寅;斧斤斫削成其器。木不南奔;喜春运不喜西方,春生,处世安然,必寿。''', - "乙":'''风 树 禄卯 水泛木浮 秋令大吉''', - "丙":"电 冶 禄巳 火无西向", - "丁":"星 灯 禄午 火明则灭 喜遇秋. 丁巳日,多克父兄妻子,财忌比劫,兄屈弟下,巳有戊土,伤", - "戊":"雾霞 山 禄巳 土虚则崩 四柱带水则为上格,霞水相辉而成文彩也;年月干见癸雨后霞现", - "己":"元气云 真土 禄午 火燥土裂 天降时雨,山川出云 贵坐酉,贵春生,贵见印,坐亥者不可见乙木,云升天,遇风则狼籍", - "庚":"月 铁 禄申 畏癸水 巳成钟鼎 水土沉埋则无声 金实无声 金沉水底 四柱有乙巳,月白风清, 秋上,冬次,春夏无取。", - "辛":"霜 金 禄酉 土重金埋 辛人坐卯,未透乙, 大富,坐亥透丙则贵。爱冬生。", - "壬":"秋露云 泽 禄亥 死水横流", - "癸":"雨 泉脉 春霖 禄子 水不西流 癸卯日透己, 有云行雨有经济才也。春夏吉,秋冬不吉"} - -zhi_desc = { - "子":"墨池 正北 时喜见癸亥,谓之水归大海,又谓之双鱼游墨,必为文章士矣。", - "丑":"柳岸 丑人时见己未,乃月照柳梢,极为上格", - "寅":"广谷 寅生人而时戊辰者,谓之虎啸而谷风生 威震万里", - "卯":"琼林 乙木 正东 仲春 卯年遇巳未时者,是为兔入月宫之象,主大贵。", - "辰":"草泽 东方之次 辰逢壬戍、癸亥即龙归大海格", - "巳":"大驿 巳生喜得辰时,蛇化轻龙,于格为千里龙驹", - "午": "烽堠 南 属火、土,其色赤黄 时利见辰,真龙出则凡马空矣,谓之马化龙驹。", - "未": "花园 卯乃木旺,自 成林麓;未乃木库,如人筑墙垣以护百花也,以百花言未中有 杂气耳;未年人双飞格,最妙,如辛未见戊戍,两干不杂是也。 ", - "申":"名都 帝王所居;申宫壬水生 亥时,乃地天交泰", - "酉":"寺钟 正西 见寅吉,谓之钟鸣谷应。", - "戌": "烧原 戌与辰地皆贵人所不临也 戌生逢卯 春入烧痕", - "亥":"悬河 即天门 日时见寅、辰二字,是乃水拱雷门", -} - -zhi_atts = { - "子":{"冲":"午", "刑":"卯", "被刑":"卯", "合":("申","辰"), "会":("亥","丑"), '害':'未', '破':'酉', "六合":"丑",}, - "丑":{"冲":"未", "刑":"戌", "被刑":"未", "合":("巳","酉"), "会":("子","亥"), '害':'午', '破':'辰', "六合":"子",}, - "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥', "六合":"亥",}, - "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午', "六合":"戌",}, - "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑', "六合":"酉",}, - "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","巳"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申",}, - "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯', "六合":"未",}, - "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午",}, - "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳', "六合":"巳",}, - "酉":{"冲":"卯", "刑":"酉", "被刑":"酉", "合":("巳","丑"), "会":("申","戌"), '害':'戌', '破':'子', "六合":"辰",}, - "戌":{"冲":"辰", "刑":"未", "被刑":"丑", "合":("午","寅"), "会":("申","酉"), '害':'酉', '破':'未', "六合":"卯",}, - "亥":{"冲":"巳", "刑":"亥", "被刑":"亥", "合":("卯","未"), "会":("子","丑"), '害':'申', '破':'寅', "六合":"寅",}, +empties = { + ('甲', '子'): ('戌','亥'), ('乙', '丑'):('戌','亥'), + ('丙', '寅'): ('戌','亥'), ('丁', '卯'): ('戌','亥'), + ('戊', '辰'): ('戌','亥'), ('己', '巳'): ('戌','亥'), + ('庚', '午'): ('戌','亥'), ('辛', '未'): ('戌','亥'), + ('壬', '申'): ('戌','亥'), ('癸', '酉'): ('戌','亥'), + + ('甲', '戌'): ('申','酉'), ('乙', '亥'): ('申','酉'), + ('丙', '子'): ('申','酉'), ('丁', '丑'): ('申','酉'), + ('戊', '寅'): ('申','酉'), ('己', '卯'): ('申','酉'), + ('庚', '辰'):('申','酉'), ('辛', '巳'): ('申','酉'), + ('壬', '午'): ('申','酉'), ('癸', '未'): ('申','酉'), + + ('甲', '申'): ('午','未'), ('乙', '酉'): ('午','未'), + ('丙', '戌'): ('午','未'), ('丁', '亥'): ('午','未'), + ('戊', '子'): ('午','未'), ('己', '丑'): ('午','未'), + ('庚', '寅'): ('午','未'), ('辛', '卯'): ('午','未'), + ('壬', '辰'): ('午','未'), ('癸', '巳'): ('午','未'), + + ('甲', '午'): ('辰','己'), ('乙', '未'): ('辰','己'), + ('丙', '申'): ('辰','己'), ('丁', '酉'): ('辰','己'), + ('戊', '戌'): ('辰','己'), ('己', '亥'): ('辰','己'), + ('庚', '子'): ('辰','己'), ('辛', '丑'): ('辰','己'), + ('壬', '寅'): ('辰','己'), ('癸', '卯'): ('辰','己'), + + ('甲', '辰'): ('寅','卯'), ('乙', '巳'): ('寅','卯'), + ('丙', '午'): ('寅','卯'), ('丁', '未'): ('寅','卯'), + ('戊', '申'): ('寅','卯'), ('己', '酉'): ('寅','卯'), + ('庚', '戌'): ('寅','卯'), ('辛', '亥'): ('寅','卯'), + ('壬', '子'): ('寅','卯'), ('癸', '丑'): ('寅','卯'), + + + ('甲', '寅'): ('子','丑 '), ('乙', '卯'): ('子','丑 '), + ('丙', '辰'): ('子','丑 '), ('丁', '巳'): ('子','丑 '), + ('戊', '午'): ('子','丑 '), ('己', '未'): ('子','丑 '), + ('庚', '申'): ('子','丑 '), ('辛', '酉'): ('子','丑 '), + ('壬', '戌'): ('子','丑 '), ('癸', '亥'): ('子','丑 '), } -gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", - "庚":"金", "辛":"金", "壬":"水", "癸":"水"} - -guans = { - "甲":('辛',"酉","戌","丑"), "乙":('庚',"申",'巳'), "丙":("癸",'丑','辰'), - "丁":('壬',"亥", '申'),"戊":('乙',"卯","戌","未"), "己":('甲',"寅", "亥"), - "庚":('丁',"午", "戌","未"), "辛":('丙',"寅",'巳'), - "壬":('己',"午",'未','丑'), "癸":('戊',"寅","辰",'巳','申','戌'),} lu_types = { "甲":{('丙','寅'):'福星禄 名位禄 吉', ('戊','寅'):'伏马禄 吉', @@ -171,244 +112,6 @@ ] -gan_health = { - "金":''' - 秋天较走运 - 申月、酉月、猴年和鸡年运气较好 - 下午三点至下午七点是吉时 - 西方是吉方 - 住朝西的房子较吉利 - 睡房在房子的西方较好 - 睡房的西方有窗字较顺利 - 金属床有利健康 - 办公桌朝西有助工作效率 - 吉祥颜色是白色 - 室内装璜用白色系统 - 穿衣用白色系列 - 开白色车子较平安易发财 - 勿伤心,注意呼吸系统、肺、肠, 筋 - 武术、击搏、兵器运动、健身房运动也很好 - 和金有关的工作较容易''', - "木":''' - 春天或清风徐来的天气较走运 - 卯月、寅月、兔年和虎年运气较好 - 上午三点至上午七点是吉时 - 东方是吉方 - 住朝东的房子较吉利 - 睡房在房子的东方较好 - 睡房的东方有窗字较顺利 - 木床有利健康 - 办公桌朝东有助工作效率 - 吉祥颜色是绿色 - 室内装璜用绿色系统 - 穿衣用绿色系列 - 开绿色车子较平安易发财 - 多喝点酸性饮料,忌生气,注意神精系统、肝、胆、头肩、肝胆 - 多打高尔夫球、公园散步、徒步树林等户外运动 - 和木有关的工作较容易。''', - "水":''' - 身体需要注意: 胫足、膀胱肾(比如结石) 多喝水 - 冬天或冷天气较走运 - 亥月、子月、猪年和鼠年运气较好 - 晚上九点至上午一点是吉时 - 北方较冷是吉方 - 住朝北的房子较吉利 - 睡房在房子的北方较好 - 睡房的北方有窗字较顺利 - 金属床或水床有利健康 - 办公桌朝北有助工作效率 - 吉祥颜色是黑色 - 室内装璜用黑色系统 - 穿衣用黑色系列,带珠宝也不错 - 开黑色车子较平安易发财 - 多喝水,注意肾脏系统 - 多做游泳、潜水、滑雪、钓鱼、溜冰等户外运动 - 和水有关的工作较容易。''', - "火":''' - 夏天或热天气较走运 - 午月、巳月、马年和蛇年运气较好 - 上午九点至下午一点是吉时 - 南方较热是吉方 - 住朝南的房子较吉利 - 睡房在房子的南方较好 - 睡房的南方有窗字较顺利 - 木床有利健康 - 办公桌朝南有助工作效率 - 吉祥颜色是红色 - 室内装璜用红色系统 - 穿衣用红色系列 - 开红色车子较平安易发财 - 要常笑,注意心脏系统、血液循环、眼睛、额齿 - 多做打篮球、网球、排球、骑单车等户外运动 - 和火有关的工作较容易''', - "土":''' - 春、夏、秋、冬四季交接之时段较走运 - 丑、辰、未、戌月和牛、龙、羊、狗年运气较好 - 上午二点、八点左右和下午二点、八点左右都是吉时 - 起居环境和气候不要太乾或太湿 - 睡房在房子的中间较好 - 办公桌靠房子的中间,有助工作效率 - 吉祥颜色是棕黄色 - 室内装璜用棕黄色系统 - 穿衣用棕黄色系列,带古玉很不错 - 开棕黄色车子较平安易发财 - 勿常担心事情,太多虑 - 吃些甜点,注意消化系统、脾、肌肉 - 多做园艺、露营、走路等户外运动。下棋、宗教场所都好 - 和土有关的工作较容易''', -} -Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] - -zhi5 = { - "子":{"癸":8}, - "丑":{"辛":1,"癸":2, "己":5}, - "寅":{"戊":1,"丙":2, "甲":5}, - "卯":{"乙":8}, - "辰":{"癸":1,"乙":2, "戊":5}, - "巳":{"庚":1,"戊":2, "丙":5}, - "午":{"己":3, "丁":5}, - "未":{"乙":1,"丁":2, "己":5}, - "申":{"戊":1,"壬":2, "庚":5}, - "酉":{"辛":8}, - "戌":{"丁":1,"辛":2, "戊":5}, - "亥":{"甲":3, "壬":5}} - -ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] -numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] -Week = ["日", "一", "二", "三", "四", "五", "六"] -jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑","白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"] -ymc = ["十一", "十二", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十" ] -rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"] - -gan_hes = { - ("甲", "己"): "中正之合 化土 尊崇重大,宽厚平直。如带煞而五行无气则多嗔好怒,性梗不可屈", - ("乙", "庚"): ''' - 仁义之合 化金 果敢有守, 不惑柔佞,周旋唯仁,进退唯义。 - 五行生旺则骨秀形清,若死个性果敢刚健,很重义气。若四柱中有七杀,或逢死绝者,勇而无谋。 - 绝带煞则使气好勇,体貌不扬,自是非人。甲己、乙庚之合, 妇人不忌。''', - ("丙", "辛"): ''' - 威制之合 化水 仪表威肃,人多畏惧,酷毒,好贿喜淫,若带煞或五行死绝则寡恩少义,无情之人。 - 妇人得之,与天中、大耗、咸池相并者,貌美声卑,夭冶而淫。''', - ("丁", "壬"): ''' - 淫慝之合 化木 眼明神娇, 多情易动,不事高洁,习下无去,枕欢溺色,于我则吝,于彼则贪, - 若五行死绝或带煞,见咸池、大耗、天中自败,有淫污家风之丑;亲厚小人,侮慢君子,贪婪妄作, - 必胜而后已。妇人淫邪奸慝,易挑易诱,多招玷辱,或年高而嫁少夫,或年幼而配老夫, - 或先贱而后良,或先良而后贱。''', - ("戊", "癸"): ''' - 无情之合 化火 合而无情,主人或好或丑,如戊得癸则娇媚,姿美得所,男子娶少妇,妇人嫁美夫; - 若癸得戊则形容古朴,老相俗尘,男子娶老妻,妇人嫁老夫''', -} - -gan_chongs = { - ("甲", "庚"): "相冲", - ("乙", "辛"): "相冲", - ("丙", "壬"): "相冲", - ("丁", "癸"): "相冲", -} - -chongs = { - "甲":"庚", "庚":"甲","乙":"辛", "辛":"乙","丙":"壬", "壬":"丙", "丁":"癸", - "癸":"丁", "子":"午", "午":"子", "丑":"未", "未":"丑", "寅":"申", "申":"寅", - "卯":"酉", "酉":"卯", "辰":"戌", "戌":"辰", "巳":"亥", "亥":"巳" -} - - -zhi_6hes = { - ("子", "丑"): "化土 子合丑福轻,丑合子福盛", - ("寅", "亥"): "化木 寅合亥福清,亥合寅福慢", - ("卯", "戌"): "化火 戌合卯福虚,卯合戌福厚", - ("辰", "酉"): "化金 辰合酉福弱,酉合辰大利", - ("巳", "申"): "化水 已合申福慢,申合巳官气盛", - ("午", "未"): "化土 午合未福慢,未合午大利", -} - -zhi_3hes = { - ("申", "子", "辰"): "化水 马在寅", - ("巳", "酉", "丑"): "化金 马在亥", - ("寅", "午", "戌"): "化火 马在申", - ("亥", "卯", "未"): "化木 马在巳", -} - -zhi_half_3hes = { - ("申", "子"): "化水 马在寅", - ("子", "辰"): "化水 马在寅", - ("申", "辰"): "化水 马在寅", - ("巳", "酉"): "化金 马在亥", - ("酉", "丑"): "化金 马在亥", - ("巳", "丑"): "化金 马在亥", - ("寅", "午"): "化火 马在申", - ("午", "戌"): "化火 马在申", - ("寅", "戌"): "化火 马在申", - ("亥", "卯"): "化木 马在巳", - ("亥","未"): "化木 马在巳", - ( "卯", "未"): "化木 马在巳", -} - -zhi_huis = { - ("亥", "子", "丑"): "化水", - ("寅", "卯", "辰"): "化木", - ("巳", "午", "未"): "化火", - ("申", "酉", "戌"): "化金", -} - -zhi_chongs = { - ("子", "午"): "相冲", - ("丑", "未"): "相冲", - ("寅", "申"): "相冲", - ("卯", "酉"): "相冲", - ("辰", "戌"): "相冲", - ("巳", "亥"): "相冲", -} - -zhi_poes = { - ("子", "酉"): "相破", - ("午", "卯"): "相破", - #("巳", "申"): "相破", - #("寅", "亥"): "相破", - ("辰", "丑"): "相破", - ("戌", "未"): "相破", -} - -zhi_haies = { - ("子", "未"): ''' - 未害子 谓未旺土,亥子旺水,名势家相害。故子见未则为害。 - 不利六亲骨肉。入贵格多妻妾之累,入贱格孤独无倚。''', - ("丑", "午"): ''' - 午害丑 谓午以旺火凌丑死金,名官鬼相害。故丑见午,而午更带丑干之真鬼则为害尤甚。 - 生旺,主好胜多怒,严毅不忍;死绝主毒害、伤惨、倾覆之事。入贵格 则主大权,司刑典狱; - 入贱格则谋生于不义之地。''', - ("寅", "巳"): ''' - 互相相害 生旺则主神洁貌俊,好争夺,喜激作;值死绝则多谋少成,强学人做事,兀兀趋进不厌。 - 入贵格则有操守, 善机权;入贱格则多诈、爱贫、鄙吝。''', - ("卯", "辰"): ''' - 卯害辰 谓卯以旺木凌辰死土,此以少凌长相害。故辰见卯,而卯更带辰干真鬼则其害尤甚。 - 生旺,主好胜多怒,严毅不忍;死绝主毒害、伤惨、倾覆之事。入贵格 则主大权,司刑典狱; - 入贱格则谋生于不义之地。''', - ("申", "亥"): ''' - 互相相害 谓名恃临官,竞嫉才能,争进相害。故申见亥,亥见申均为害,更纳音相克者重。 - 生旺则主神洁貌俊,好争夺,喜激作;值死绝则多谋少成,强学人做事,兀兀趋进不厌。 - 入贵格则有操守, 善机权;入贱格则多诈、爱贫、鄙吝。''', - ("酉", "戌"): ''' - 戌害酉 戌以死火害酉旺金,此嫉妒相害,故酉人见戌则凶,戌人见酉无灾; - 若乙酉人得戊戌,乙为真金,戊为真火,为害尤甚。 生旺,不容物,多刚戾;死绝酷狠,憎善妒能。 - 入贵格 罗怯无辜,结构入讼,颇多奸佞,入贱格残害、阴狡、性佞、 不良。''', -} - -zhi_xings = { - ("寅", "巳"): "寅刑巳 无恩之刑 ", - ("巳", "申"): "巳刑申 无恩之刑", - ("申", "寅"): "申刑寅 无恩之刑", - ("未", "丑"): "未刑丑 持势之刑", - ("丑", "戌"): "丑刑戌 持势之刑", - ("戌", "未"): "戌刑未 持势之刑", - ("子", "卯"): "子刑卯 卯刑子 无礼之刑 女命见之,尤为不良 生旺主人威肃,面无和气,气强性暴,太察不容;死绝则侮慢忽略,狭劣刻剥,少孝悌,害妻子,吴越六亲。入贵格则多掌兵权,不利近侍;位居不久;入贱格则悖凶暴,多招刑祸。", -} - -xings = {"巳":"寅", "申":"巳", "寅":"申", "丑":"未", "戌":"丑", "未":"戌", - "子":"卯", "卯":"子", '辰':'辰', '午':'午','酉':'酉', '亥':'亥'} - -zhi_zixings = ['辰', '午', '酉', '亥'] - wenchang = {"甲":'巳', "乙":"亥", "丙":"戌", "丁":"辰", "戊":"申", "己":"午", "庚": "寅", "辛":"未", "壬": "卯", "癸":"丑"} wenxing = {"甲":'午', "乙":"巳", "丙":"申", "丁":"酉", "戊":"申", "己":"酉", diff --git a/bazi/ganzhi.py b/bazi/ganzhi.py new file mode 100644 index 0000000..1b4404e --- /dev/null +++ b/bazi/ganzhi.py @@ -0,0 +1,346 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 +# CreateDate: 2019-2-21 +import collections +from bidict import bidict + +Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] + +Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] + +zhi5 = { + "子":{"癸":8}, + "丑":{"辛":1,"癸":2, "己":5}, + "寅":{"戊":1,"丙":2, "甲":5}, + "卯":{"乙":8}, + "辰":{"癸":1,"乙":2, "戊":5}, + "巳":{"庚":1,"戊":2, "丙":5}, + "午":{"己":3, "丁":5}, + "未":{"乙":1,"丁":2, "己":5}, + "申":{"戊":1,"壬":2, "庚":5}, + "酉":{"辛":8}, + "戌":{"丁":1,"辛":2, "戊":5}, + "亥":{"甲":3, "壬":5}} + +ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] +numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] +Week = ["日", "一", "二", "三", "四", "五", "六"] +jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑","白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"] +ymc = ["十一", "十二", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十" ] +rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"] + + +ten_deities = { + '甲':bidict({'甲':'比肩', "乙":'劫', "丙":'食', "丁":'伤', "戊":'偏财', + "己":'财', "庚":'杀', "辛":'官', "壬":'偏印', "癸":'印', "子":'沐浴', + "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', + "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), + '乙':bidict({'甲':'劫', "乙":'比肩', "丙":'伤', "丁":'食', "戊":'财', + "己":'偏财', "庚":'官', "辛":'杀', "壬":'印',"癸":'偏印', "子":'病', + "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', + "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), + '丙':bidict({'丙':'比肩', "丁":'劫', "戊":'食', "己":'伤', "庚":'偏财', + "辛":'财', "壬":'杀', "癸":'官', "甲":'偏印', "乙":'印',"子":'胎', + "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), + '丁':bidict({'丙':'劫', "丁":'比肩', "戊":'伤', "己":'食', "庚":'财', + "辛":'偏财', "壬":'官', "癸":'杀', "甲":'印',"乙":'偏印', "子":'绝', + "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), + '戊':bidict({'戊':'比肩', "己":'劫', "庚":'食', "辛":'伤', "壬":'偏财', + "癸":'财', "甲":'杀', "乙":'官', "丙":'偏印', "丁":'印',"子":'胎', + "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), + '己':bidict({'戊':'劫', "己":'比肩', "庚":'伤', "辛":'食', "壬":'财', + "癸":'偏财', "甲":'官', "乙":'杀', "丙":'印',"丁":'偏印',"子":'绝', + "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), + '庚':bidict({'庚':'比肩', "辛":'劫', "壬":'食', "癸":'伤', "甲":'偏财', + "乙":'财', "丙":'杀', "丁":'官', "戊":'偏印', "己":'印',"子":'死', + "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', + "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), + '辛':bidict({'庚':'劫', "辛":'比肩', "壬":'伤', "癸":'食', "甲":'财', + "乙":'偏财', "丙":'官', "丁":'杀', "戊":'印', "己":'偏印', "子":'长生', + "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', + "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), + '壬':bidict({'壬':'比肩', "癸":'劫', "甲":'食', "乙":'伤', "丙":'偏财', + "丁":'财', "戊":'杀', "己":'官', "庚":'偏印', "辛":'印',"子":'帝旺', + "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', + "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), + '癸':bidict({'壬':'劫', "癸":'比肩', "甲":'伤', "乙":'食', "丙":'财', + "丁":'偏财', "戊":'官', "己":'杀', "庚":'印',"辛":'偏印', "子":'建', + "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', + "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), + +} + +shengxiaos = bidict({ + "子":"鼠", "丑":"牛", "寅":"虎", "卯":"兔", "辰":"龙", "巳":"蛇", + "午":"马", "未":"羊", "申":"猴", "酉":"鸡", "戌":"狗", "亥":"猪"}) + +zhi_atts = { + "子":{"冲":"午", "刑":"卯", "被刑":"卯", "合":("申","辰"), "会":("亥","丑"), '害':'未', '破':'酉', "六合":"丑",}, + "丑":{"冲":"未", "刑":"戌", "被刑":"未", "合":("巳","酉"), "会":("子","亥"), '害':'午', '破':'辰', "六合":"子",}, + "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥', "六合":"亥",}, + "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午', "六合":"戌",}, + "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑', "六合":"酉",}, + "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","巳"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申",}, + "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯', "六合":"未",}, + "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午",}, + "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳', "六合":"巳",}, + "酉":{"冲":"卯", "刑":"酉", "被刑":"酉", "合":("巳","丑"), "会":("申","戌"), '害':'戌', '破':'子', "六合":"辰",}, + "戌":{"冲":"辰", "刑":"未", "被刑":"丑", "合":("午","寅"), "会":("申","酉"), '害':'酉', '破':'未', "六合":"卯",}, + "亥":{"冲":"巳", "刑":"亥", "被刑":"亥", "合":("卯","未"), "会":("子","丑"), '害':'申', '破':'寅', "六合":"寅",}, +} + +gan_hes = { + ("甲", "己"): "中正之合 化土 尊崇重大,宽厚平直。如带煞而五行无气则多嗔好怒,性梗不可屈", + ("乙", "庚"): ''' + 仁义之合 化金 果敢有守, 不惑柔佞,周旋唯仁,进退唯义。 + 五行生旺则骨秀形清,若死个性果敢刚健,很重义气。若四柱中有七杀,或逢死绝者,勇而无谋。 + 绝带煞则使气好勇,体貌不扬,自是非人。甲己、乙庚之合, 妇人不忌。''', + ("丙", "辛"): ''' + 威制之合 化水 仪表威肃,人多畏惧,酷毒,好贿喜淫,若带煞或五行死绝则寡恩少义,无情之人。 + 妇人得之,与天中、大耗、咸池相并者,貌美声卑,夭冶而淫。''', + ("丁", "壬"): ''' + 淫慝之合 化木 眼明神娇, 多情易动,不事高洁,习下无去,枕欢溺色,于我则吝,于彼则贪, + 若五行死绝或带煞,见咸池、大耗、天中自败,有淫污家风之丑;亲厚小人,侮慢君子,贪婪妄作, + 必胜而后已。妇人淫邪奸慝,易挑易诱,多招玷辱,或年高而嫁少夫,或年幼而配老夫, + 或先贱而后良,或先良而后贱。''', + ("戊", "癸"): ''' + 无情之合 化火 合而无情,主人或好或丑,如戊得癸则娇媚,姿美得所,男子娶少妇,妇人嫁美夫; + 若癸得戊则形容古朴,老相俗尘,男子娶老妻,妇人嫁老夫''', +} + +gan_chongs = {("甲", "庚"): "相冲", ("乙", "辛"): "相冲", + ("丙", "壬"): "相冲", ("丁", "癸"): "相冲",} + +chongs = { + "甲":"庚", "庚":"甲","乙":"辛", "辛":"乙","丙":"壬", "壬":"丙", "丁":"癸", + "癸":"丁", "子":"午", "午":"子", "丑":"未", "未":"丑", "寅":"申", "申":"寅", + "卯":"酉", "酉":"卯", "辰":"戌", "戌":"辰", "巳":"亥", "亥":"巳" +} + + +zhi_6hes = { + ("子", "丑"): "化土 子合丑福轻,丑合子福盛", + ("寅", "亥"): "化木 寅合亥福清,亥合寅福慢", + ("卯", "戌"): "化火 戌合卯福虚,卯合戌福厚", + ("辰", "酉"): "化金 辰合酉福弱,酉合辰大利", + ("巳", "申"): "化水 已合申福慢,申合巳官气盛", + ("午", "未"): "化土 午合未福慢,未合午大利", +} + +zhi_3hes = { + ("申", "子", "辰"): "化水 马在寅", + ("巳", "酉", "丑"): "化金 马在亥", + ("寅", "午", "戌"): "化火 马在申", + ("亥", "卯", "未"): "化木 马在巳", +} + +zhi_half_3hes = { + ("申", "子"): "化水 马在寅", + ("子", "辰"): "化水 马在寅", + ("申", "辰"): "化水 马在寅", + ("巳", "酉"): "化金 马在亥", + ("酉", "丑"): "化金 马在亥", + ("巳", "丑"): "化金 马在亥", + ("寅", "午"): "化火 马在申", + ("午", "戌"): "化火 马在申", + ("寅", "戌"): "化火 马在申", + ("亥", "卯"): "化木 马在巳", + ("亥","未"): "化木 马在巳", + ( "卯", "未"): "化木 马在巳", +} + +zhi_huis = { + ("亥", "子", "丑"): "化水", + ("寅", "卯", "辰"): "化木", + ("巳", "午", "未"): "化火", + ("申", "酉", "戌"): "化金", +} + +zhi_chongs = { + ("子", "午"): "相冲", + ("丑", "未"): "相冲", + ("寅", "申"): "相冲", + ("卯", "酉"): "相冲", + ("辰", "戌"): "相冲", + ("巳", "亥"): "相冲", +} + +zhi_poes = { + ("子", "酉"): "相破", + ("午", "卯"): "相破", + #("巳", "申"): "相破", + #("寅", "亥"): "相破", + ("辰", "丑"): "相破", + ("戌", "未"): "相破", +} + +zhi_haies = { + ("子", "未"): ''' + 未害子 谓未旺土,亥子旺水,名势家相害。故子见未则为害。 + 不利六亲骨肉。入贵格多妻妾之累,入贱格孤独无倚。''', + ("丑", "午"): ''' + 午害丑 谓午以旺火凌丑死金,名官鬼相害。故丑见午,而午更带丑干之真鬼则为害尤甚。 + 生旺,主好胜多怒,严毅不忍;死绝主毒害、伤惨、倾覆之事。入贵格 则主大权,司刑典狱; + 入贱格则谋生于不义之地。''', + ("寅", "巳"): ''' + 互相相害 生旺则主神洁貌俊,好争夺,喜激作;值死绝则多谋少成,强学人做事,兀兀趋进不厌。 + 入贵格则有操守, 善机权;入贱格则多诈、爱贫、鄙吝。''', + ("卯", "辰"): ''' + 卯害辰 谓卯以旺木凌辰死土,此以少凌长相害。故辰见卯,而卯更带辰干真鬼则其害尤甚。 + 生旺,主好胜多怒,严毅不忍;死绝主毒害、伤惨、倾覆之事。入贵格 则主大权,司刑典狱; + 入贱格则谋生于不义之地。''', + ("申", "亥"): ''' + 互相相害 谓名恃临官,竞嫉才能,争进相害。故申见亥,亥见申均为害,更纳音相克者重。 + 生旺则主神洁貌俊,好争夺,喜激作;值死绝则多谋少成,强学人做事,兀兀趋进不厌。 + 入贵格则有操守, 善机权;入贱格则多诈、爱贫、鄙吝。''', + ("酉", "戌"): ''' + 戌害酉 戌以死火害酉旺金,此嫉妒相害,故酉人见戌则凶,戌人见酉无灾; + 若乙酉人得戊戌,乙为真金,戊为真火,为害尤甚。 生旺,不容物,多刚戾;死绝酷狠,憎善妒能。 + 入贵格 罗怯无辜,结构入讼,颇多奸佞,入贱格残害、阴狡、性佞、 不良。''', +} + +zhi_xings = { + ("寅", "巳"): "寅刑巳 无恩之刑 ", + ("巳", "申"): "巳刑申 无恩之刑", + ("申", "寅"): "申刑寅 无恩之刑", + ("未", "丑"): "未刑丑 持势之刑", + ("丑", "戌"): "丑刑戌 持势之刑", + ("戌", "未"): "戌刑未 持势之刑", + ("子", "卯"): "子刑卯 卯刑子 无礼之刑 女命见之,尤为不良 生旺主人威肃,面无和气,气强性暴,太察不容;死绝则侮慢忽略,狭劣刻剥,少孝悌,害妻子,吴越六亲。入贵格则多掌兵权,不利近侍;位居不久;入贱格则悖凶暴,多招刑祸。", +} + +xings = {"巳":"寅", "申":"巳", "寅":"申", "丑":"未", "戌":"丑", "未":"戌", + "子":"卯", "卯":"子", '辰':'辰', '午':'午','酉':'酉', '亥':'亥'} + +zhi_zixings = ['辰', '午', '酉', '亥'] + + + +gan5 = {"甲":"木", "乙":"木", "丙":"火", "丁":"火", "戊":"土", "己":"土", + "庚":"金", "辛":"金", "壬":"水", "癸":"水"} + +guans = { + "甲":('辛',"酉","戌","丑"), "乙":('庚',"申",'巳'), "丙":("癸",'丑','辰'), + "丁":('壬',"亥", '申'),"戊":('乙',"卯","戌","未"), "己":('甲',"寅", "亥"), + "庚":('丁',"午", "戌","未"), "辛":('丙',"寅",'巳'), + "壬":('己',"午",'未','丑'), "癸":('戊',"寅","辰",'巳','申','戌'),} + +gan_health = { + "金":''' + 秋天较走运 + 申月、酉月、猴年和鸡年运气较好 + 下午三点至下午七点是吉时 + 西方是吉方 + 住朝西的房子较吉利 + 睡房在房子的西方较好 + 睡房的西方有窗字较顺利 + 金属床有利健康 + 办公桌朝西有助工作效率 + 吉祥颜色是白色 + 室内装璜用白色系统 + 穿衣用白色系列 + 开白色车子较平安易发财 + 勿伤心,注意呼吸系统、肺、肠, 筋 + 武术、击搏、兵器运动、健身房运动也很好 + 和金有关的工作较容易''', + "木":''' + 春天或清风徐来的天气较走运 + 卯月、寅月、兔年和虎年运气较好 + 上午三点至上午七点是吉时 + 东方是吉方 + 住朝东的房子较吉利 + 睡房在房子的东方较好 + 睡房的东方有窗字较顺利 + 木床有利健康 + 办公桌朝东有助工作效率 + 吉祥颜色是绿色 + 室内装璜用绿色系统 + 穿衣用绿色系列 + 开绿色车子较平安易发财 + 多喝点酸性饮料,忌生气,注意神精系统、肝、胆、头肩、肝胆 + 多打高尔夫球、公园散步、徒步树林等户外运动 + 和木有关的工作较容易。''', + "水":''' + 身体需要注意: 胫足、膀胱肾(比如结石) 多喝水 + 冬天或冷天气较走运 + 亥月、子月、猪年和鼠年运气较好 + 晚上九点至上午一点是吉时 + 北方较冷是吉方 + 住朝北的房子较吉利 + 睡房在房子的北方较好 + 睡房的北方有窗字较顺利 + 金属床或水床有利健康 + 办公桌朝北有助工作效率 + 吉祥颜色是黑色 + 室内装璜用黑色系统 + 穿衣用黑色系列,带珠宝也不错 + 开黑色车子较平安易发财 + 多喝水,注意肾脏系统 + 多做游泳、潜水、滑雪、钓鱼、溜冰等户外运动 + 和水有关的工作较容易。''', + "火":''' + 夏天或热天气较走运 + 午月、巳月、马年和蛇年运气较好 + 上午九点至下午一点是吉时 + 南方较热是吉方 + 住朝南的房子较吉利 + 睡房在房子的南方较好 + 睡房的南方有窗字较顺利 + 木床有利健康 + 办公桌朝南有助工作效率 + 吉祥颜色是红色 + 室内装璜用红色系统 + 穿衣用红色系列 + 开红色车子较平安易发财 + 要常笑,注意心脏系统、血液循环、眼睛、额齿 + 多做打篮球、网球、排球、骑单车等户外运动 + 和火有关的工作较容易''', + "土":''' + 春、夏、秋、冬四季交接之时段较走运 + 丑、辰、未、戌月和牛、龙、羊、狗年运气较好 + 上午二点、八点左右和下午二点、八点左右都是吉时 + 起居环境和气候不要太乾或太湿 + 睡房在房子的中间较好 + 办公桌靠房子的中间,有助工作效率 + 吉祥颜色是棕黄色 + 室内装璜用棕黄色系统 + 穿衣用棕黄色系列,带古玉很不错 + 开棕黄色车子较平安易发财 + 勿常担心事情,太多虑 + 吃些甜点,注意消化系统、脾、肌肉 + 多做园艺、露营、走路等户外运动。下棋、宗教场所都好 + 和土有关的工作较容易''', +} + + +gan_desc = { + "甲":'''雷龙 梁栋 禄寅;斧斤斫削成其器。木不南奔;喜春运不喜西方,春生,处世安然,必寿。''', + "乙":'''风 树 禄卯 水泛木浮 秋令大吉''', + "丙":"电 冶 禄巳 火无西向", + "丁":"星 灯 禄午 火明则灭 喜遇秋. 丁巳日,多克父兄妻子,财忌比劫,兄屈弟下,巳有戊土,伤", + "戊":"雾霞 山 禄巳 土虚则崩 四柱带水则为上格,霞水相辉而成文彩也;年月干见癸雨后霞现", + "己":"元气云 真土 禄午 火燥土裂 天降时雨,山川出云 贵坐酉,贵春生,贵见印,坐亥者不可见乙木,云升天,遇风则狼籍", + "庚":"月 铁 禄申 畏癸水 巳成钟鼎 水土沉埋则无声 金实无声 金沉水底 四柱有乙巳,月白风清, 秋上,冬次,春夏无取。", + "辛":"霜 金 禄酉 土重金埋 辛人坐卯,未透乙, 大富,坐亥透丙则贵。爱冬生。", + "壬":"秋露云 泽 禄亥 死水横流", + "癸":"雨 泉脉 春霖 禄子 水不西流 癸卯日透己, 有云行雨有经济才也。春夏吉,秋冬不吉"} + +zhi_desc = { + "子":"墨池 正北 时喜见癸亥,谓之水归大海,又谓之双鱼游墨,必为文章士矣。", + "丑":"柳岸 丑人时见己未,乃月照柳梢,极为上格", + "寅":"广谷 寅生人而时戊辰者,谓之虎啸而谷风生 威震万里", + "卯":"琼林 乙木 正东 仲春 卯年遇巳未时者,是为兔入月宫之象,主大贵。", + "辰":"草泽 东方之次 辰逢壬戍、癸亥即龙归大海格", + "巳":"大驿 巳生喜得辰时,蛇化轻龙,于格为千里龙驹", + "午": "烽堠 南 属火、土,其色赤黄 时利见辰,真龙出则凡马空矣,谓之马化龙驹。", + "未": "花园 卯乃木旺,自 成林麓;未乃木库,如人筑墙垣以护百花也,以百花言未中有 杂气耳;未年人双飞格,最妙,如辛未见戊戍,两干不杂是也。 ", + "申":"名都 帝王所居;申宫壬水生 亥时,乃地天交泰", + "酉":"寺钟 正西 见寅吉,谓之钟鸣谷应。", + "戌": "烧原 戌与辰地皆贵人所不临也 戌生逢卯 春入烧痕", + "亥":"悬河 即天门 日时见寅、辰二字,是乃水拱雷门", +} \ No newline at end of file diff --git a/bazi/shen.py b/bazi/shen.py new file mode 100644 index 0000000..7220cfd --- /dev/null +++ b/bazi/shen.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 +# CreateDate: 2019-2-21 + diff --git a/bazi/sizi.py b/bazi/sizi.py index 95f587e..74d6b62 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -87,7 +87,9 @@ '甲日甲戌': ''' 六甲日生时甲戌,木遭火局气不舒;好善福平常,父母并伤。 + -- 甲木在 山头火。 甲日甲戌时,甲用丙为食,辛为官,戌上食神入火局,辛有余气,身被火焚,为人好善,平常衣禄。 + -- 甲木克戌中戊,为克父 甲以戊为父,癸为母,戌上旺甲伤戊,内有暗戊伤癸,戊癸受克,难为二亲。 时逢甲戌比肩逢,库有天禄火气冲;鸡鸭同鸣皆聚散,到头心志不相同。 @@ -105,13 +107,40 @@ 甲日时逢乙亥,就中壬水相生。时临帝座紫微宫,子嗣螟蛉得用。父母雁行少力,花开结子。 ''', - '甲日乙亥': ''' - 六甲日生时乙亥,羊刃反伤为祸害;财官辛戊不相逢,只恐功名不亨泰。 - 甲日乙亥时,甲木亥上长生有旺,乙为刃,制克学堂,壬为倒食,亥上建禄。 - 甲以金为官,戊己为财,辛金沐浴,戊己衰绝,不能作福。 - 生巳酉丑月及见辛,柱有戊字,贵。余虽聪明,功名不遂,艺术人也。 + '乙日丙子': ''' + 六乙日生时丙子,伤官坐贵福不全;柱中不见官刑破,方是平生贵禄缘。 + 乙日丙子时,六乙鼠贵。乙用庚为官,死于子;见丙为伤,丙暗邀辛化煞为权,柱中不见庚辛, + 无丑绊午冲,方成格,贵。若有上忌及不通月气,无救助者,暴恶贫下,有疾寿促。 - 甲日时逢乙亥强,有官有印不寻常;时来自有高人荐,运至财乡大显扬。 - 甲日时逢乙亥,就中壬水相生。时临帝座紫微宫,子嗣螟蛉得用。父母雁行少力,花开结子。 - ''', + 六乙贵格丙子时,如无冲破始为奇;不遇庚申巳酉丑,定乘轩冕拜丹墀。 + 乙日时临丙子,伤官伤尽荣昌。亥卯未月不寻常,运至身健旺相。辛庚不见发福,午冲丑绊平常。如逢刑克空一场。 + 此命或衰或旺。 + ''', + '乙日丁丑': ''' + 六乙日生时丁丑,食神相助遇财官;月通金气化为福,不是寻常下贱看。 + 乙日丁丑时,食会财官,丁为食,庚为官,己为财,丑中有辛金合局,己土得位,如有倚托者,贵。 + 通金气月化者,富厚尊重;不通月气,平常。 + + 仓库时开乙见丁,食神坐库禄财亲。无匙不作朝中客,也是清闲有福人。 + 乙日时逢丁丑,寿星发达无疑,身居磨蝎莫嫌迟,库内钱财积聚。 + 年时月合发达,空刑妻子难为。双亲雁侣有盈亏,运至牢藏金柜。 + ''', + '乙日戊寅': ''' + 六乙日生时戊寅,败财背禄实伤身;有心无力多成败,止是平常衣禄人。 + 六乙日戊寅时,败财背禄,乙用庚为官,寅中有丙,伤官背禄: + 用戊己为财,寅中甲旺财败,为人作事成败平常。通土气者吉。 + + 乙日寅时仔细推,为人招是又招非;运衰更遇空刑克,劳力劳心无定期。 + 乙日戊寅时遇,就是暗损伤财。伤官背禄柱中排,富贵妻儿刑害。 + 运旺财官发福,运行比煞兴灾。六亲骨肉少和谐,自立自成自在。 + ''', + '乙日己卯': ''' + 六乙日生逢己卯,时居日禄财临好;旺通木气贵无疑,金重亦可恼。 + 乙日己卯时,禄入庙堂,乙木逢卯建禄,为人秀丽,通木火者贵。见庚辛为伤禄破命,患目疾。 + 若生巳酉丑月,平常衣禄。辰戌未,吉。申月亦吉。 + + 日禄居时格不同,食神则马要相逢;伤官印运皆为吉,官不逢兮禄自丰。 + 乙日时临己卯,偏财时禄归迎。辛金酉字不相刑,虎榜定标名姓。 + 父母六亲难靠,雁行各自飞腾,文章光耀有才能,无破无冲贵命。 + ''', } \ No newline at end of file From 190c6728ce3783ee6b6804587c8b566a91e156e8 Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 12 Mar 2019 11:39:04 +0800 Subject: [PATCH 030/122] add strong for bazi --- bazi/bazi.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index bc7891e..e3852f9 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -82,8 +82,15 @@ def yinyang(item): for gan in zhi5[item]: scores[gan5[gan]] += zhi5[item][gan] gan_scores[gan] += zhi5[item][gan] + + +# 计算八字强弱 +me_attrs_ = ten_deities[me].inverse +strong = gan_scores[me_attrs_['比肩']] + gan_scores[me_attrs_['劫']] \ + + gan_scores[me_attrs_['偏印']] + gan_scores[me_attrs_['印']] + if not options.b: print("\n日期:") print("======================================") @@ -139,15 +146,15 @@ def yinyang(item): print("空亡", item) break - - print("-"*140) for item in gan_scores: print("{}[{}]-{} ".format( item, ten_deities[me][item], gan_scores[item]), end=' ') print("\n") -print(scores) +print("五行分数", scores, '\t\t八字强弱:', strong, "通常大于29分为强,还需要参考月份、坐支等") + + # 子女分析 boy = ten_deities[me].inverse['食'] if options.n else ten_deities[me].inverse['杀'] @@ -436,8 +443,10 @@ def check_subset(gans, db, desc): print("=========================") print(zhus[2]) +print(list(gans).count('癸')) #short = min(scores, key=scores.get) #print("\n\n五行缺{}的建议".format(short)) #print("=========================") #print("{}".format(gan_health[short])) + From 995c5c0fa05b30a57a3dd1260612293c17ce6a05 Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 15 Mar 2019 09:11:06 +0800 Subject: [PATCH 031/122] modify same zhi score bugs in buzi.py --- bazi/bazi.py | 25 ++++++-- bazi/ganzhi.py | 65 ++++++++++++++++---- bazi/sizi.py | 163 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 236 insertions(+), 17 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index e3852f9..1674ce2 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -94,11 +94,11 @@ def yinyang(item): if not options.b: print("\n日期:") print("======================================") - print("公历:") + print("公历:", end='') print("\t{}年{}月{}日".format(day.y, day.m, day.d)) Lleap = "闰" if day.Lleap else "" - print("农历:") + print("农历:", end='') print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) print("\n八字: 同义词:七杀|偏官 偏印|枭神 解读:钉钉或微信pythontesting") @@ -126,9 +126,9 @@ def yinyang(item): )) -for item in zhis: +for seq, item in enumerate(zhis): out = '' - multi = 2 if item == zhis.month else 1 + multi = 2 if item == zhis.month and seq == 1 else 1 for gan in zhi5[item]: out = out + "{}{}{}{} ".format(gan, gan5[gan], zhi5[item][gan]*multi, @@ -208,6 +208,23 @@ def yinyang(item): print("=========================") print(summarys[sum_index]) +gan_ = tuple(gans) +for item in Gan: + if gan_.count(item) == 3: + print("三字干:", item, "--", gan3[item]) + break + +gan_ = tuple(gans) +for item in Gan: + if gan_.count(item) == 4: + print("四字干:", item, "--", gan4[item]) + break + +zhi_ = tuple(zhis) +for item in Zhi: + if zhi_.count(item) > 2: + print("三字支:", item, "--", zhi3[item]) + break print("="*140) print("你属:", me, "特点:--", gan_desc[me],"\n") diff --git a/bazi/ganzhi.py b/bazi/ganzhi.py index 1b4404e..dee786c 100644 --- a/bazi/ganzhi.py +++ b/bazi/ganzhi.py @@ -80,18 +80,18 @@ "午":"马", "未":"羊", "申":"猴", "酉":"鸡", "戌":"狗", "亥":"猪"}) zhi_atts = { - "子":{"冲":"午", "刑":"卯", "被刑":"卯", "合":("申","辰"), "会":("亥","丑"), '害':'未', '破':'酉', "六合":"丑",}, - "丑":{"冲":"未", "刑":"戌", "被刑":"未", "合":("巳","酉"), "会":("子","亥"), '害':'午', '破':'辰', "六合":"子",}, - "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥', "六合":"亥",}, - "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午', "六合":"戌",}, - "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑', "六合":"酉",}, - "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","巳"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申",}, - "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯', "六合":"未",}, - "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午",}, - "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳', "六合":"巳",}, - "酉":{"冲":"卯", "刑":"酉", "被刑":"酉", "合":("巳","丑"), "会":("申","戌"), '害':'戌', '破':'子', "六合":"辰",}, - "戌":{"冲":"辰", "刑":"未", "被刑":"丑", "合":("午","寅"), "会":("申","酉"), '害':'酉', '破':'未', "六合":"卯",}, - "亥":{"冲":"巳", "刑":"亥", "被刑":"亥", "合":("卯","未"), "会":("子","丑"), '害':'申', '破':'寅', "六合":"寅",}, + "子":{"冲":"午", "刑":"卯", "被刑":"卯", "合":("申","辰"), "会":("亥","丑"), '害':'未', '破':'酉', "六合":"丑","暗合":"戌",}, + "丑":{"冲":"未", "刑":"戌", "被刑":"未", "合":("巳","酉"), "会":("子","亥"), '害':'午', '破':'辰', "六合":"子","暗合":"寅",}, + "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥', "六合":"亥","暗合":"丑",}, + "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午', "六合":"戌","暗合":"申",}, + "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑', "六合":"酉","暗合":"丑",}, + "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","巳"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申","暗合":"酉",}, + "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯', "六合":"未","暗合":"亥",}, + "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午","暗合":"丑",}, + "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳', "六合":"巳","暗合":"卯",}, + "酉":{"冲":"卯", "刑":"酉", "被刑":"酉", "合":("巳","丑"), "会":("申","戌"), '害':'戌', '破':'子', "六合":"辰","暗合":"巳",}, + "戌":{"冲":"辰", "刑":"未", "被刑":"丑", "合":("午","寅"), "会":("申","酉"), '害':'酉', '破':'未', "六合":"卯","暗合":"丑",}, + "亥":{"冲":"巳", "刑":"亥", "被刑":"亥", "合":("卯","未"), "会":("子","丑"), '害':'申', '破':'寅', "六合":"寅","暗合":"午",}, } gan_hes = { @@ -343,4 +343,43 @@ "酉":"寺钟 正西 见寅吉,谓之钟鸣谷应。", "戌": "烧原 戌与辰地皆贵人所不临也 戌生逢卯 春入烧痕", "亥":"悬河 即天门 日时见寅、辰二字,是乃水拱雷门", -} \ No newline at end of file +} + +gan3 = { + "甲":'天上贵,孤独守空房', + "乙":'多阴私,又要败祖业', + "丙":'人孤老,产中亡', + "丁":"多恶疾,手足也自伤", + "戊":"子随出,离祖别家乡", + "己":"别父母,兄弟各一方", + "庚":"财郎,万里置田庄", + "辛":"寿数长,财滞多灾郎", + "壬":"家业盛,有富不久长", + "癸":"一亥全,烈火烧屋房"} + +gan4 = { + "甲":'少夫妻', + "乙":'命早亡', + "丙":'子息空', + "丁":"寿不长", + "戊":"人孤刑", + "己":"人忠良", + "庚":"他乡走", + "辛":"寿限长", + "壬":"定富足", + "癸":"人夭亡"} + + +zhi3 = { + "子":"婚事重", + "丑":"四夫妻", + "寅":"守孤寡", + "卯":"凶恶多", + "辰":"好斗伤", + "巳":"遭刑害", + "午": "克夫妻", + "未": "守空房 ", + "申":"人不足", + "酉":"独居房", + "戌": "讼事多", + "亥":"孤苦怜", } \ No newline at end of file diff --git a/bazi/sizi.py b/bazi/sizi.py index 74d6b62..908e21d 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -142,5 +142,168 @@ 日禄居时格不同,食神则马要相逢;伤官印运皆为吉,官不逢兮禄自丰。 乙日时临己卯,偏财时禄归迎。辛金酉字不相刑,虎榜定标名姓。 父母六亲难靠,雁行各自飞腾,文章光耀有才能,无破无冲贵命。 + ''', + + '乙日庚辰': ''' + 六乙日生时庚辰,水白金清化象真; + 壬从辛酉通官贵,却防目疾减精神。 + 乙日庚辰时,妻贤子贵。乙合庚化金,若通申巳酉丑月, + 为人秀丽,主贵,却防目疾。如不见化,以壬为印,庚为官, + 辰土癸水合局,乙木有托,行东南运,贵显平和。 + + 乙庚相会贵无疑,阴木阳金正合时; + 运吉身强无冲破,升迁自有贵人提。 + 乙日庚辰时正,天官守库乾元,青年虎榜姓名传,禀性温良恭俭。士庶妻贤子贵。 + 财人禄位升迁。南离戊癸火相连。富贵之中当险。 + ''', + + '乙日辛巳': ''' + 六乙日生时辛巳,金木交争主不仁;有化月中身旺贵,不通无化恐伤人。 + 乙日辛巳时,暗金交争,是非日有,若通身旺月,有倚托,化鬼为官,行身旺运,贵。 + 通木气月,行金旺运,大贵。通金气月,行身旺运,亦贵。 + + 乙巳相伤逢金木,求名求利常反复; + 六亲骨肉有如无,印绶运乡能发福。 + 乙日时逢辛巳,柱中鬼旺身衰。六亲难靠不和谐,谋望有成有败。 + 几度遇凶则吉,信知苦尽甘来。运行身旺印绶怀,富贵时人喝采。 + ''', + + '乙日壬午': ''' + 六乙日生时壬午,印绶生身财食聚; + 月通水木禄丰盈,不通月气平常数。 + 乙日壬午时,印绶学堂,乙木长生在午,见壬为印,用丁为食,己为财,午上丁己建旺, + 若通水月气者,文章秀丽;不通月气,平常衣禄,通运亦好。 + + 乙日生逢壬午时,月通水木贵人钦;运行官旺无冲破,家业丰隆事称心。 + 乙日时逢壬午,食神印绶同宫。无冲无破不相刑,信是声名响应。 + 词馆清秀高士,文章出众超群,贵人喜见小人憎,中末峥嵘之命。 ''', + + '乙日癸未': ''' + 六乙日生时癸未,入墓之中遇倒伤;马劣财微食见克,一生衣禄主平常。 + 倒食食神,己土偏财,破癸癸倒未中丁火之食,平常衣禄。 + 通土气月则吉。 + + 乙日相逢时癸未,算来离祖不成家;有刑克害多成败,运吉如添锦上花。 + 乙日相逢癸未,生逢木墓夭孤。雁行兄弟有如无,心性不常喜怒。 + 自立自成事业,六亲骨肉亲疏,贵人得合两相扶,此命先贫后富。 + ''', + + '乙日甲申': ''' + 六乙日生时甲申,官星得印位生成;月中通气无冲破,必定荣华仕路人。 + 乙日甲申时,官印生身,乙用庚为官,壬为印,申上庚旺 + 壬生,身有寄托,通金水月运者贵;不通,身弱官重,虽贵不永。 + + 乙日相逢时遇甲,长生驿马内相亲;贵人天乙来相助,释却褐衣入紫宸。 + 乙日申时逢贵,其间高人见喜。小人称美有奇希,克破冲刑减力。 + 身旺运逢吉地,信知两旺财官。有鞍有马有衣冠,定主门庭改换。 + ''', + + '乙日乙酉': ''' + 六乙日生时乙酉,得逢金局火为奇;用神遇木重重见,鬼绝寿伤反无依。 + 乙日乙酉时,身绝鬼旺,乙以辛为鬼,酉上辛旺乙绝。 + 若通巳酉丑月,化金局者贵。如用神坐木,身旺不化,又见于酉,不夭必贫。 + + 日干是乙时临酉,假煞为权身旺奇;身弱遇官徒费力,功名须待运通时。 + 乙日时临乙酉,诞辰乙木无忧。其中权贵任求谋,无破功名定有。 + 妻子早年克害,财源雨散云收。迁宗移祖免忧愁。中末家资成就。 + ''', + + '乙日丙戌': ''' + 六乙日生时丙戌,鬼败临身有损伤;若不气通身旺月,孤贫劳碌苦难当。 + 鬼败临身,戌中有辛余气、丙丁库,食神制煞,若柱透庚,伤官见官,为祸百端; + 年月有寅午(三会),丙火合局,即一木叠逢火位,主人傲物气高,衣禄平常,残疾,不然寿促。 + 通身旺月气者,吉。 + + 乙日丙戌时火库,藏辛遇丑乃吉昌;若也运逢凶克害,算来此命且如常。 + 乙日相逢丙戌,伤官库木枝枯。不临辛丑钥匙无。难倚六亲父母,雁侣分飞不睦,于人心悲成疏。 + 要知发福改门闾,此命后甜先苦 + ''', + + + '乙日丁亥': ''' + 六乙日生丁亥时,食神印绶亦奇哉;月气水土无财贵,切忌伤妻与子灾。 + 乙日丁亥时,死处逢生,乙木死,亥却气壬水为生气印绶, + 乙用丁为食,亥中丁坐无气,喜甲木生,助丁食为福。如遇金局,行水运者,防目疾。 + 四柱见财,或行财运、贪财坏印,主破财。戊为财为妻,庚为官为子,亥上庚绝土病,妻衰子少。 + + 时上生逢亥与丁,食神乙木遇长生;月气相扶为最贵,身衰无倚是常人。 + 乙日时逢丁亥,食神印绶相扶。长生得意好无伤,荣显清名贵遇。 + 喜逢丁壬化气,运临冠带迁除。无机妙法实难窥,丙己寅申减贵。 + ''', + + '丙日戊子': ''' + 六丙日生时戊子,财官生旺遇食神;月气相扶为最贵,身衰夫倚是常人。 + 丙日戊子时,官旺财生,丙用辛为财,癸为官,丙合辛,戊合癸,子中癸旺辛生,丙火无气。 + 若通火气,月有倚托者贵;不通贫下。通木气亦吉。 + + 活计生涯四季隆,丙逢戊子食官同;无伤晚岁皆成就,吉处遭凶险处通。 + 丙子时逢戊子,官星食福同排。午丁未遇且沉埋,交通中年大快。 + 父母妻子喜合。胸中隐匿文才。若逢好运一时来,富贵清闲自在。 + ''', + + '丙日己丑': ''' + 六丙日生时己丑,官鬼相生禄不成;若见申庚并乙旺,不求财禄过平生。 + 丙日己丑时,伤官背禄,傲物志高。丙用癸为官,丑中有癸余气,被明暗土伤,柱透癸为祸。 + 若见庚辛,伤官生财,却为福庆。 + + 丙日财官库里藏,戌辰未字显文章;身衰若也无匙钥,求名求利总平常。 + 丙日时逢己丑,伤官财库暗藏。运交未戌不寻常。破出财官必旺。 + 近贵谋夺劫财,算来虽有害。六亲真假少和谐,直断依时莫怪。 + ''', + + '丙日庚寅': ''' + 六丙日生时庚寅,学堂生气助其身;运中有合通金局,必是荣华富贵人。 + 丙日庚寅时,生气学堂,丙寅上长生,文章秀气;丙以庚辛为财,寅上庚绝丙旺。 + 若通月气金局者财旺,富贵双全,喜西方运;不通局者财薄。 + + 丙庚相合遇寅时,险难消除福自随;运至寒门名将相,时来平步上云梯。 + 丙日庚寅时准,双亲衰旺离乡。妻儿早害晚荣昌,白虎归山正旺。 + 木有成林松柏,生涯广聚财粮。堆金积玉满高堂,共羡人言上样。 + ''', + + '丁日壬寅': ''' + 六丁日生时壬寅,身去从官化木神;水木月通成局象,尊荣安富贵无伦。 + 丁日壬寅时,身去从官,丁壬化木,寅上健旺,若水局之月,大贵;通木月亦贵。 + 如丁未月,行东方运,好。 + + 丁亥日壬寅时,日贵格,配合壬寅,官印俱全,文章显达。子月,大贵,化气凶。 + + 丁壬合化入金乡,狗禄蝇名空自忙;节概衰残无足取,眼前骨肉亦参商。 + 丁日壬寅时合,化局木旺之乡。月支申酉不相逢,得意高人荐用。 + 父母雁行少力,外人喜笑春风,运逢水木没金踪,贵显荣达之命。 + ''', + + '戊日己未':''' + 六戊日生时己未,羊刃偏官不怕冲;但是为人多性狠,平生衣禄亦无凶。 + 戊日己未时,羊刃偏官,戊以己为羊刃,甲为偏官,时上明暗二己为刃,甲木未中合局,若见刑冲破害,刃煞有制,主贵。 + 通月旺者平常衣禄,二十年,父母俱失;若不通月气,得寅申者贵。 + + 未中戊己土成堆,刑害冲来事亦谐;先暗后明凶变吉,贵人提携出尘埋。 + 戊日时临己未,六亲骨肉成疏。喜逢火印暗中扶,甲乙寅卯为主。 + 重谢花开结果,双亲雁行夭孤。自为自立自图谋,赖有贵人扶助。 + ''', + + '壬日丙午':''' + 六壬日生时丙午,聚财之地坐胞胎;月逢金水须富贵,弃命从来是就财。 + 壬日丙午时,禄马三奇。壬以己为官,丙丁为财,午上丁己是禄马,壬水受胎, + 有倚托,通金水月气,就财生旺,主富贵,通火气,亦贵。 + + 丙午时生壬日强,时中禄马不寻常;运行吉地无冲破,早晚升迁到省堂。 + 壬日时逢丙午,亦名禄马同乡,就中既济见文章,志气宽洪海量。 + 不过刑冲破害,自然财禄盈箱。运行财旺及官乡,定是朝中宰相。 + ''', + + + '癸日壬子':''' + 六癸日生时壬子,青云得路最为奇;若无己土冲克破,自有功名显达时。 + 癸日壬子时,日禄归时,癸水子上建禄, + 若年月干支无戊己午未字刑冲破害,三元有倚托,通月气者,文章秀丽,官职显达; + 若通木气月,亦贵。如柱透己,有甲合,亦贵。否则,反覆。 + + 日禄归时局中得,食神喜遇怕刑冲;伤官莫道伤财运,官不加兮财不丰。 + 癸日时临壬子,名为归禄格同,家门白屋也峥嵘,玄武当权禄重。 + 水清宝瓶益盛,文章博览多通,荣迁来历紫薇封,甲午寅亥破动。 + + ''', } \ No newline at end of file From 625a0bb6250835bd7063c7f9a4ffba5917a67ad0 Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 18 Mar 2019 07:28:26 +0800 Subject: [PATCH 032/122] add relation in main panel of bazi! --- bazi/bazi.py | 52 ++++++++++++++++++++++++++++++++++++++++++++------ bazi/ganzhi.py | 8 ++++---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index 1674ce2..73a11a4 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -101,7 +101,7 @@ def yinyang(item): print("农历:", end='') print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) -print("\n八字: 同义词:七杀|偏官 偏印|枭神 解读:钉钉或微信pythontesting") +print("\n八字: 同义词:七杀|偏官 偏印|枭神 流岁取天干 解读:钉钉或微信pythontesting 以下未包含暗合、三合") print("="*140) print("{:^28s}{:^28s}{:^28s}{:^28s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) print("-"*140) @@ -110,7 +110,7 @@ def yinyang(item): gans.year, yinyang(gans.year), gan5[gans.year], ten_deities[me][gans.year]), '{}{}{}5 [{}]'.format( gans.month, yinyang(gans.month), gan5[gans.month], ten_deities[me][gans.month]), - '{}{}{}5 [{}]'.format(me, yinyang(me),gan5[me], '自己'), + '{}{}{}5 [{}]'.format(me, yinyang(me),gan5[me], '自己 天元'), '{}{}{}5 [{}]'.format(gans.time, yinyang(gans.time), gan5[gans.time], ten_deities[me][gans.time]), )) @@ -118,9 +118,9 @@ def yinyang(item): print("{:^30s}{:^30s}{:^30s}{:^30s}".format( "{}{}{} [{}]".format(zhis.year, yinyang(zhis.year), ten_deities[me][zhis.year], ten_deities[gans.year][zhis.year]), - "{}{}{} [{}]".format(zhis.month, yinyang(zhis.month), + "{}{}{} [{}]【命】地元".format(zhis.month, yinyang(zhis.month), ten_deities[me][zhis.month], ten_deities[gans.month][zhis.month]), - "{}{}{}".format(zhis.day, yinyang(zhis.day), ten_deities[me][zhis.day]), + "{}{}{} 地元".format(zhis.day, yinyang(zhis.day), ten_deities[me][zhis.day]), "{}{}{} [{}]".format(zhis.time, yinyang(zhis.time), ten_deities[me][zhis.time], ten_deities[gans.time][zhis.time]), )) @@ -135,7 +135,22 @@ def yinyang(item): ten_deities[me][gan]) print("{:^26s}".format(out), end=' ') -print() + +for seq, item in enumerate(zhis): + + output = '' + others = zhis[:seq] + zhis[seq+1:] + for type_ in zhi_atts[item]: + flag = False + for zhi in zhi_atts[item][type_]: + if zhi in others: + if not flag: + output = output + " " + type_ + ":" + flag = True + output += zhi + print("{:^30s}".format(output), end=' ') + + for item in zhus: print("{:^30s}".format(nayins[item]), end=' ') @@ -145,7 +160,7 @@ def yinyang(item): if item in zhis: print("空亡", item) break - +print(zhi_3hes) print("-"*140) for item in gan_scores: print("{}[{}]-{} ".format( @@ -154,7 +169,32 @@ def yinyang(item): print("\n") print("五行分数", scores, '\t\t八字强弱:', strong, "通常大于29分为强,还需要参考月份、坐支等") +# 出身分析 +cai = ten_deities[me].inverse['财'] +guan = ten_deities[me].inverse['官'] +births = tuple(gans[:2]) +if cai in births and guan in births: + birth = '不错' +#elif cai in births or guan in births: + #birth = '较好' +else: + birth = '一般' + +print("出身:", birth) + +gan_shens = [] +for item in gans: + gan_shens.append(ten_deities[me][item]) +print(gan_shens) + +zhi_shens = [] +for item in zhis: + d = zhi5[item] + zhi_shens.append(ten_deities[me][max(d, key=d.get)]) +print(zhi_shens) +if "伤" in gan_shens + zhi_shens: + print("伤官: 合神(三合、六合、双鸳合等等)重,男子犯之,耽迷酒色;女人逢之,不媒自嫁。") # 子女分析 boy = ten_deities[me].inverse['食'] if options.n else ten_deities[me].inverse['杀'] diff --git a/bazi/ganzhi.py b/bazi/ganzhi.py index dee786c..470fa34 100644 --- a/bazi/ganzhi.py +++ b/bazi/ganzhi.py @@ -133,10 +133,10 @@ } zhi_3hes = { - ("申", "子", "辰"): "化水 马在寅", - ("巳", "酉", "丑"): "化金 马在亥", - ("寅", "午", "戌"): "化火 马在申", - ("亥", "卯", "未"): "化木 马在巳", + ("申", "子", "辰"): "水 马在寅", + ("巳", "酉", "丑"): "金 马在亥", + ("寅", "午", "戌"): "火 马在申", + ("亥", "卯", "未"): "木 马在巳", } zhi_half_3hes = { From 676cbada8232f8847548ed625fec9df21ea90aa2 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 18 Mar 2019 18:03:45 +0800 Subject: [PATCH 033/122] modify format of he in bazi.py --- bazi/bazi.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index 73a11a4..8bbbcb9 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -101,7 +101,7 @@ def yinyang(item): print("农历:", end='') print("\t{}年{}{}月{}日".format(day.Lyear0 + 1984, Lleap, ymc[day.Lmc], rmc[day.Ldi])) -print("\n八字: 同义词:七杀|偏官 偏印|枭神 流岁取天干 解读:钉钉或微信pythontesting 以下未包含暗合、三合") +print("\n八字: 同义词:七杀|偏官 偏印|枭神 流岁取天干 解读:钉钉或微信pythontesting 以下未包含拱合、三合") print("="*140) print("{:^28s}{:^28s}{:^28s}{:^28s}".format('年【父-根】', "月【兄弟僚友-苗】", "日【自己配偶-花】", "时【子孙-实】")) print("-"*140) @@ -135,7 +135,7 @@ def yinyang(item): ten_deities[me][gan]) print("{:^26s}".format(out), end=' ') - +print() for seq, item in enumerate(zhis): output = '' @@ -150,7 +150,7 @@ def yinyang(item): output += zhi print("{:^30s}".format(output), end=' ') - +print() for item in zhus: print("{:^30s}".format(nayins[item]), end=' ') @@ -502,8 +502,8 @@ def check_subset(gans, db, desc): print(list(gans).count('癸')) -#short = min(scores, key=scores.get) -#print("\n\n五行缺{}的建议".format(short)) -#print("=========================") -#print("{}".format(gan_health[short])) +short = min(scores, key=scores.get) +print("\n\n五行缺{}的建议".format(short)) +print("=========================") +print("{}".format(gan_health[short])) From 71f682ed0e079b98d726666bba141ab21efb757d Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 20 Mar 2019 14:27:31 +0800 Subject: [PATCH 034/122] =?UTF-8?q?Add=20=E7=99=B8=E6=97=A5*=20in=20sizi.p?= =?UTF-8?q?y?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/sizi.py | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/bazi/sizi.py b/bazi/sizi.py index 908e21d..68eea9b 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# 鸣谢 https://github.com/yuangu/sxtwl_cpp/tree/master/python # CreateDate: 2019-2-21 summarys = { @@ -12,6 +13,8 @@ '甲日乙丑': ''' 劫财羊刃不宜有;柱中逢火带辛金,制伏和平贵亦久。 乙克丑中的财;乙丑为海中金,若年日时合成火局,制伏金,主德性纯和而贵;无火凶狠;如合水局凶恶损家。 + + 贵人天乙被乙劫财伤害。火局南方运贵,金神制伏相当。木枯水盛且平常,背祖离乡晚旺。 ''', @@ -283,6 +286,16 @@ 戊日时临己未,六亲骨肉成疏。喜逢火印暗中扶,甲乙寅卯为主。 重谢花开结果,双亲雁行夭孤。自为自立自图谋,赖有贵人扶助。 ''', + + '壬日庚子':''' + 六壬日生时丙午,聚财之地坐胞胎;月逢金水须富贵,弃命从来是就财。 + 壬日丙午时,禄马三奇。壬以己为官,丙丁为财,午上丁己是禄马,壬水受胎, + 有倚托,通金水月气,就财生旺,主富贵,通火气,亦贵。 + + 丙午时生壬日强,时中禄马不寻常;运行吉地无冲破,早晚升迁到省堂。 + 壬日时逢丙午,亦名禄马同乡,就中既济见文章,志气宽洪海量。 + 不过刑冲破害,自然财禄盈箱。运行财旺及官乡,定是朝中宰相。 + ''', '壬日丙午':''' 六壬日生时丙午,聚财之地坐胞胎;月逢金水须富贵,弃命从来是就财。 @@ -306,4 +319,108 @@ 水清宝瓶益盛,文章博览多通,荣迁来历紫薇封,甲午寅亥破动。 ''', + + '癸日癸丑':''' + 六癸日生时癸丑,支中暗鬼有刑伤;月通身旺防妻损,丑巳遥合贵异常。 + 癸以丁为妻,丑中丁火无气,若通身旺比肩之月,防损妻财。 + 柱丑寅多,以寅刑巳,丑合巳,刑出巳中,丙戊为财官,须干 + 头无戊己字,大贵。忌巳未卯破格。 + + 阴水重重时库收,少年难发莫强求;筹来受过中年后,安坐高堂任白头。 + 癸日时逢癸丑,水流金局盈冲,库逢戌未禄财丰,不过空乏难动。 + 无匙少年不显,有匙禄马和同,运来何用苦劳心,发达门庭大庆。 + + ''', + + '癸日甲寅':''' + 六癸日生时甲寅,刃复官禄减精神;柱中无有庚申字,刑合财官是贵人。 + 癸日甲寅时,刑合财官,癸以丙为财,戊为官,寅刑出巳中丙戊为财官, + 若柱无官煞及刑冲破害损格,贵;有庚申戊己字,无制伏,不贵。 + + 甲寅癸日戊丙开,少年未遇且沉埋;若还四柱无冲破,平步登云到省台。 + 癸日寅时克应,支干相合光荣,若无壬己戊庚申,必然财禄丰润。 + 运至皇州显达,文章虎榜标名,但逢一字稍空冲,克子伤食剥俸。 + ''', + + '癸日乙卯':''' + 六癸日生乙卯时,长生之地遇食神;众无午酉兼辛巳,福寿双全禄位人。 + 癸日乙卯时,食神干旺。癸以乙为学堂食神,卯上癸水长生,乙坐禄,柱中无己破辛夺, + 午酉刑冲,通月气,有倚托,主聪明有寿,居官食禄;若有己土,不贵。春月生,北运,显达。 + + 乙癸相逢旺食支,天工造物本无私;运行自有高人荐,手攀丹桂上云逵。 + 癸日时逢乙卯,贵人食禄之乡,玉堂乙卯位侯王,便是金门将相。 + 君子文章播发,常人财禄盈箱,甲寅辛酉颇安常,富贵荣华大享。 + ''', + + '癸日丙辰':''' + 六癸日生时丙辰,偏官无气未为贫;若无木气通其局,定是清高福禄人。 + 癸日丙辰时,身坐官库,癸用戊己为官,辰上土墓为官库, + 见丙为财,辰为水局,丙火无气,癸水合局,柱无甲破官损库,主贵。 + + 癸日丙辰官库闭,财星虽透却无气;官要匙开财要兴,柱逢卯戊方为贵。 + 癸日丙辰时遇,库中锁闭财官,要逢卯戊钥匙开,守祖六亲阻碍。暗有食神相助,空乏虚度资财, + 先贫后富命中排,改祖重兴渐快。 + ''', + + '癸日丁巳':''' + 六癸日生时丁巳,贵地逢财遇暗官;有托就看财禄盛,无依必定福偏残。 + 癸日丁巳时,癸合财官,癸用丙为财,戊为官,庚为印,巳为天乙贵人。 + 巳上庚金长生,丙戊建禄,癸水受胎,若有倚托,通水气月,贵,不通水气。平常。 + 时逢三奇,大抵发于晚年。 + + 巳时禄马同争先,造化无私产大贤;刑冲减半无空克,运至声名扬九天。 + 癸日时临丁巳,贵人禄马同乡,三重蛇马正朝纲,玉殿金阶来往。壬亥申寅减半,只愁运落空亡, + 果无冲克无刑伤,舞拜凤凰池上。 + ''', + + '癸日戊午':''' + 六癸日生时戊午,化火临时帝旺乡;运喜东南木火地,为官清正禄荣昌。 + 癸日戊午时,化气成火局,癸合戊化火,午上帝旺,合局而贵,身旺不化癸水,地方之气引到南方, + 癸水无气,贵而寿促,东方运吉。 + + 将星扶禄命高低,见爱于人是与非;得志退毛鸡化凤,虎卧平坡被兔欺。 + 癸日时逢戊午,天元既济之方,化为真火显威光,灾难消除福长。 + 壬会甲寅减半,是非成败难防,六亲不睦暗刑伤,难得资财富旺。 + ''', + + '癸日己未':''' + 六癸日生时癸未,鬼旺身衰福不齐;月气不通无救助,平常衣禄有相亏。 + + 偏官暗鬼库中埋,险难惊忧不聚财;丑戌相逢钥匙吉,旺中癸福定无灾。 + 癸日时临己未,库中耗鬼身衰,不逢卯戌钥匙开,锁闭不能通泰。 + 花落重荣结子,双亲雁侣难谐,纵然先贫后富来,弃旧迎新无碍。 + ''', + + '癸日庚申':''' + 六癸日生时庚申,官星印旺在其支;柱中无己丙寅巳,自有荣华富贵时。 + 癸日庚申时,作专印合禄。癸以戊为正官,庚为正印,申上庚旺戊生,以申合巳中戊丙, + 癸日得财官,若有倚托,柱中无财及破害刑冲官印,主贵;柱中有财,行财运,反复进退,少贵。 + + 癸日庚申仔细推,禹门深处见龙飞;文章得助雄威力,柱合财官世所希。 + 癸日庚申时正,印绶齐合官星,亥寅申丙巳刑冲,离合立之身不定。 + 无破黄甲显姓,常人财禄安宁,果无刑害与灾星,便是锦鸡化凤。 + ''', + + '癸日壬戌':''' + 六癸日生日壬戌,支内正官生财库;月兼有救贵多成,倚托若无终不富。 + 癸日壬戌时,水火既济,癸用丙丁为财,戊土为官,戊与癸合旺,为人智谋,通月气有倚托者贵; + 不通,平常;通火土月气,富贵双全;运气通,亦吉。 + + 天乙壬癸戌时排,库内财官等钥开;不遇刑冲空锁闭,少年难发更生灾。 + 癸日时逢壬戌,就中仓库盈余,将星天德两相扶,辰戌钥匙开助。 + 土旺长流水局,六亲恩处成疏,不遇空亡有增余,中末荣华享福。 + ''', + + + '癸日癸亥':''' + 六癸日生时癸亥,禄马飞天临旺神;不见官星兼惹绊,必为贵格异常人。 + 癸日癸亥时,禄马飞天格,癸水亥健旺,癸用戊为官,丙为财,亥中丙戊俱绝, + 癸无财官,却亥去冲出巳中丙戊,飞来就癸为财官,柱无戊己惹绊及官星破禄,若见庚辛, + 清白而秀,为人智慧,贵为方面。 + + 阴水重重透海波,少年未遇且蹉跎;困龙得志方能化,不遇时来虎卧坡。 + 癸日时逢癸亥,败财带禄亨通。喜宜秋夏忌春冬,戊丙庚木富盛。 + 巳亥甲丙反复,六亲大不和同。一身不定好翻腾,先败后成之命。 + ''', + } \ No newline at end of file From 992266a8422aeeba1ea1550e250824cbf2b1e38e Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 20 Mar 2019 14:29:16 +0800 Subject: [PATCH 035/122] Add thanks in bazi.py --- bazi/bazi.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bazi/bazi.py b/bazi/bazi.py index 8bbbcb9..123cabf 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 +# 鸣谢 https://github.com/yuangu/sxtwl_cpp/tree/master/python # CreateDate: 2019-2-21 # -*- coding:utf-8 -*- From 1a2030527f9d7d1940219a3eb65f4347199c12d2 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 20 Mar 2019 18:25:31 +0800 Subject: [PATCH 036/122] =?UTF-8?q?Add=20=E7=99=B8=E6=97=A5*=20in=20sizi.p?= =?UTF-8?q?y?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/bazi.py | 9 +- bazi/ganzhi.py | 2 + bazi/sizi.py | 339 +++++++++++++++++++++++++++++++++---------------- 3 files changed, 235 insertions(+), 115 deletions(-) diff --git a/bazi/bazi.py b/bazi/bazi.py index 123cabf..484a1d5 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -161,14 +161,16 @@ def yinyang(item): if item in zhis: print("空亡", item) break -print(zhi_3hes) -print("-"*140) + +print("-"*140) + +print(kus) for item in gan_scores: print("{}[{}]-{} ".format( item, ten_deities[me][item], gan_scores[item]), end=' ') - print("\n") print("五行分数", scores, '\t\t八字强弱:', strong, "通常大于29分为强,还需要参考月份、坐支等") +print(zhi_3hes) # 出身分析 cai = ten_deities[me].inverse['财'] @@ -243,6 +245,7 @@ def yinyang(item): print("{:<25s} {:<25s} {:<25} {:<25s}".format( father_state, mother_state, brother_state, sister_state)) +print("-"*140) sum_index = ''.join([me, '日', *zhus[3]]) if sum_index in summarys: print("\n\n命") diff --git a/bazi/ganzhi.py b/bazi/ganzhi.py index 470fa34..4c31abb 100644 --- a/bazi/ganzhi.py +++ b/bazi/ganzhi.py @@ -94,6 +94,8 @@ "亥":{"冲":"巳", "刑":"亥", "被刑":"亥", "合":("卯","未"), "会":("子","丑"), '害':'申', '破':'寅', "六合":"寅","暗合":"午",}, } +kus = {'辰':"水土", '戌':'火', '丑':'金', '未':'木',} + gan_hes = { ("甲", "己"): "中正之合 化土 尊崇重大,宽厚平直。如带煞而五行无气则多嗔好怒,性梗不可屈", ("乙", "庚"): ''' diff --git a/bazi/sizi.py b/bazi/sizi.py index 68eea9b..166b218 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -9,77 +9,77 @@ 甲日甲子时,虽甲败在子,暗有癸水生气印绶,兼有官(海中金)生其印,若己土破印,通月气,贵。 否则,秀而不实。 -- 如果有己土化比肩为佳。 ''', - - '甲日乙丑': ''' + + '甲日乙丑': ''' 劫财羊刃不宜有;柱中逢火带辛金,制伏和平贵亦久。 乙克丑中的财;乙丑为海中金,若年日时合成火局,制伏金,主德性纯和而贵;无火凶狠;如合水局凶恶损家。 - - + + 贵人天乙被乙劫财伤害。火局南方运贵,金神制伏相当。木枯水盛且平常,背祖离乡晚旺。 ''', - - '甲日丙寅': ''' + + '甲日丙寅': ''' 甲木寅上健旺,丙为食神, 且通火气, 寿星在位 通火木月气者贵,忌见官星及申冲禄。 甲丙相邀入虎乡,福星坐禄显文章;运逢四柱无伤害,早晚陛迁至宪堂。 若逢辰戌,两三妻,禄主朝元富贵。丁午庚申减福,无官惹绊为奇。 生来贵显有人提,此命先难后易。 ''', - - '甲日丁卯': ''' + + '甲日丁卯': ''' 伤官羊刃真当恼;纵然月气有扶持,未免为人性不好。 乙木克己财,为人凶狠。若柱透辛,伤官见官,刑害百端,运气凶险,不得善终; 柱有七煞合刃,行财官印绶,大贵。 甲逢丁火化为灰,父母兄弟难倚。祖业田财聚散,妻儿总有刑亏。运行官煞始为奇,性格或嗔或喜。 ''', - - '甲日戊辰': ''' + + '甲日戊辰': ''' 天财坐库会滋身;富商巨贾田园盛,月带辛金名利成。时上偏财,遇龙守库。主为商贾发财,田园广盛。 八月带禄,财官俱有,富贵双全。忌比肩、羊刃夺财。 时上偏财不用多,干枝内外细搜罗;运通财旺官生至,运拙身衰恐受磨。甲日戊辰时遇,柱中要戌相扶。 辛庚透干贵显,壬癸滋助不枯。只怕比劫弟兄多,岁运逢之有祸。 ''', - - '甲日己巳': ''' + + '甲日己巳': ''' 病中财物实难任;月通火气方为贵,若是身衰亦不禁。 食旺身衰,甲木巳上病,虽有暗戊为财,丙为食,不通月气,难任其福。 甲己为平头煞,生逢春月,身旺财衰,主骨肉参商,平生作事,弄巧成拙。 己巳金神有火制伏,巳酉丑合局,行南方运,名重禄高。柱不见火,残害化气,主凶恶暴亡。 - + 甲己中央作土神,时逢辰已脱埃尘;局中岁运趋炎火,显远功名富贵人。 甲日时逢己巳,火临土厚无光。旱苗得雨叶枝强,火局金神旺相。 进士有名无实,常人改祖番庄。为人性格不寻常,运至晚年气象。 ''', - - '甲日庚午': ''' + + '甲日庚午': ''' 死地逢鬼,甲木死于午,午头见庚为鬼,不通月气,无救助者,带疾寿促。 月逢丙寅,身旺庚绝则吉,亦主有始无终。若通木气,主方面,通水气,行东方运,止郎官。 - + 午时庚申是偏官,制伏相宜不等闲;身弱煞强无食见,平生谋望主艰难。 甲日时逢庚午,柱中喜见寅申。身强煞浅转精神,父母雁行不顺。 妻子早年刑害,晚年出众超群。平生反复好翻腾,先破后成之命。 ''', - - '甲日辛未': ''' + + '甲日辛未': ''' 甲日辛未时,时贵逢官,甲见辛为官,未有天乙贵;己为财,未中己土得气,若通木气月, 有寄托者富;通土气月者,富贵双全。 - + 甲逢辛未是财官,平步青云路不难;不比退毛鸡化凤,得时飞上彩云路。 甲日时逢辛未,财官守库相扶。贵人财禄是良图,初苦未终荣富。君子迁官进职,常人丰厚充腴。 刑冲破害柱中无,定得青云之路。 ''', - - '甲日壬申': ''' + + '甲日壬申': ''' 六甲生时遇壬申,明伤暗鬼坐其身;柱无丙戊秋冬旺,坎坷飘流无定人。 甲日壬申时,甲木绝在申,申土壬水长生,庚金建禄,明袅暗鬼,甲旺化鬼为官,犹不免凶暴。 若生秋庚旺,生冬壬旺,柱无丙戊制伏,漂流之象。若巳午月,大吉。强横透庚,作煞论,运行北方,贵。 - + 甲日时逢喜遇申,偏官偏印怕刑冲;欲求名利终难定,有救须教运气通。 甲日时逢壬申,倒食暗鬼相侵。生逢身旺主昌荣,身弱性情不定。 雁侣六亲少力,谋为自立自成。运行吉地显声名,运弱平常之命。 ''', - - '甲日癸酉': ''' + + '甲日癸酉': ''' 暗官明印未希奇;柱中有火无刑破,元命胎生贵可知。 甲日癸酉时,胎生元命,甲木酉上受胎,为甲生气,明癸为印,暗辛为官,有己土破印,不贵。 酉为金神,若柱有寅戌,通火气者,德性纯厚而贵。无火见水,凶暴残疾。 @@ -87,8 +87,8 @@ 甲日时逢癸酉,为人富贵双全。三奇发福屡升迁,上下相和贵显。 君子寒门将相,常人置立田园。无伤无破是英贤,此命定居台宪。 ''', - - '甲日甲戌': ''' + + '甲日甲戌': ''' 六甲日生时甲戌,木遭火局气不舒;好善福平常,父母并伤。 -- 甲木在 山头火。 甲日甲戌时,甲用丙为食,辛为官,戌上食神入火局,辛有余气,身被火焚,为人好善,平常衣禄。 @@ -99,36 +99,36 @@ 甲日时通甲戌,比肩带禄相逢。天孤仓库隐其中,酉丑辰支取用。 无钥冲刑开破,立身多学少成。柱金木火旺火生,先暗后明之命。 ''', - - '甲日乙亥': ''' + + '甲日乙亥': ''' 六甲日生时乙亥,羊刃反伤为祸害;财官辛戊不相逢,只恐功名不亨泰。 甲日乙亥时,甲木亥上长生有旺,乙为刃,制克学堂,壬为倒食,亥上建禄。 甲以金为官,戊己为财,辛金沐浴,戊己衰绝,不能作福。 生巳酉丑月及见辛,柱有戊字,贵。余虽聪明,功名不遂,艺术人也。 - + 甲日时逢乙亥强,有官有印不寻常;时来自有高人荐,运至财乡大显扬。 甲日时逢乙亥,就中壬水相生。时临帝座紫微宫,子嗣螟蛉得用。父母雁行少力,花开结子。 ''', - - '乙日丙子': ''' + + '乙日丙子': ''' 六乙日生时丙子,伤官坐贵福不全;柱中不见官刑破,方是平生贵禄缘。 乙日丙子时,六乙鼠贵。乙用庚为官,死于子;见丙为伤,丙暗邀辛化煞为权,柱中不见庚辛, 无丑绊午冲,方成格,贵。若有上忌及不通月气,无救助者,暴恶贫下,有疾寿促。 - + 六乙贵格丙子时,如无冲破始为奇;不遇庚申巳酉丑,定乘轩冕拜丹墀。 乙日时临丙子,伤官伤尽荣昌。亥卯未月不寻常,运至身健旺相。辛庚不见发福,午冲丑绊平常。如逢刑克空一场。 此命或衰或旺。 ''', - '乙日丁丑': ''' + '乙日丁丑': ''' 六乙日生时丁丑,食神相助遇财官;月通金气化为福,不是寻常下贱看。 乙日丁丑时,食会财官,丁为食,庚为官,己为财,丑中有辛金合局,己土得位,如有倚托者,贵。 通金气月化者,富厚尊重;不通月气,平常。 - + 仓库时开乙见丁,食神坐库禄财亲。无匙不作朝中客,也是清闲有福人。 乙日时逢丁丑,寿星发达无疑,身居磨蝎莫嫌迟,库内钱财积聚。 年时月合发达,空刑妻子难为。双亲雁侣有盈亏,运至牢藏金柜。 ''', - '乙日戊寅': ''' + '乙日戊寅': ''' 六乙日生时戊寅,败财背禄实伤身;有心无力多成败,止是平常衣禄人。 六乙日戊寅时,败财背禄,乙用庚为官,寅中有丙,伤官背禄: 用戊己为财,寅中甲旺财败,为人作事成败平常。通土气者吉。 @@ -137,7 +137,7 @@ 乙日戊寅时遇,就是暗损伤财。伤官背禄柱中排,富贵妻儿刑害。 运旺财官发福,运行比煞兴灾。六亲骨肉少和谐,自立自成自在。 ''', - '乙日己卯': ''' + '乙日己卯': ''' 六乙日生逢己卯,时居日禄财临好;旺通木气贵无疑,金重亦可恼。 乙日己卯时,禄入庙堂,乙木逢卯建禄,为人秀丽,通木火者贵。见庚辛为伤禄破命,患目疾。 若生巳酉丑月,平常衣禄。辰戌未,吉。申月亦吉。 @@ -146,8 +146,8 @@ 乙日时临己卯,偏财时禄归迎。辛金酉字不相刑,虎榜定标名姓。 父母六亲难靠,雁行各自飞腾,文章光耀有才能,无破无冲贵命。 ''', - - '乙日庚辰': ''' + + '乙日庚辰': ''' 六乙日生时庚辰,水白金清化象真; 壬从辛酉通官贵,却防目疾减精神。 乙日庚辰时,妻贤子贵。乙合庚化金,若通申巳酉丑月, @@ -159,8 +159,8 @@ 乙日庚辰时正,天官守库乾元,青年虎榜姓名传,禀性温良恭俭。士庶妻贤子贵。 财人禄位升迁。南离戊癸火相连。富贵之中当险。 ''', - - '乙日辛巳': ''' + + '乙日辛巳': ''' 六乙日生时辛巳,金木交争主不仁;有化月中身旺贵,不通无化恐伤人。 乙日辛巳时,暗金交争,是非日有,若通身旺月,有倚托,化鬼为官,行身旺运,贵。 通木气月,行金旺运,大贵。通金气月,行身旺运,亦贵。 @@ -170,114 +170,114 @@ 乙日时逢辛巳,柱中鬼旺身衰。六亲难靠不和谐,谋望有成有败。 几度遇凶则吉,信知苦尽甘来。运行身旺印绶怀,富贵时人喝采。 ''', - - '乙日壬午': ''' + + '乙日壬午': ''' 六乙日生时壬午,印绶生身财食聚; 月通水木禄丰盈,不通月气平常数。 乙日壬午时,印绶学堂,乙木长生在午,见壬为印,用丁为食,己为财,午上丁己建旺, 若通水月气者,文章秀丽;不通月气,平常衣禄,通运亦好。 - + 乙日生逢壬午时,月通水木贵人钦;运行官旺无冲破,家业丰隆事称心。 乙日时逢壬午,食神印绶同宫。无冲无破不相刑,信是声名响应。 词馆清秀高士,文章出众超群,贵人喜见小人憎,中末峥嵘之命。 ''', - - '乙日癸未': ''' + + '乙日癸未': ''' 六乙日生时癸未,入墓之中遇倒伤;马劣财微食见克,一生衣禄主平常。 倒食食神,己土偏财,破癸癸倒未中丁火之食,平常衣禄。 通土气月则吉。 - + 乙日相逢时癸未,算来离祖不成家;有刑克害多成败,运吉如添锦上花。 乙日相逢癸未,生逢木墓夭孤。雁行兄弟有如无,心性不常喜怒。 自立自成事业,六亲骨肉亲疏,贵人得合两相扶,此命先贫后富。 ''', - - '乙日甲申': ''' + + '乙日甲申': ''' 六乙日生时甲申,官星得印位生成;月中通气无冲破,必定荣华仕路人。 乙日甲申时,官印生身,乙用庚为官,壬为印,申上庚旺 壬生,身有寄托,通金水月运者贵;不通,身弱官重,虽贵不永。 - + 乙日相逢时遇甲,长生驿马内相亲;贵人天乙来相助,释却褐衣入紫宸。 乙日申时逢贵,其间高人见喜。小人称美有奇希,克破冲刑减力。 身旺运逢吉地,信知两旺财官。有鞍有马有衣冠,定主门庭改换。 ''', - - '乙日乙酉': ''' + + '乙日乙酉': ''' 六乙日生时乙酉,得逢金局火为奇;用神遇木重重见,鬼绝寿伤反无依。 乙日乙酉时,身绝鬼旺,乙以辛为鬼,酉上辛旺乙绝。 若通巳酉丑月,化金局者贵。如用神坐木,身旺不化,又见于酉,不夭必贫。 - + 日干是乙时临酉,假煞为权身旺奇;身弱遇官徒费力,功名须待运通时。 乙日时临乙酉,诞辰乙木无忧。其中权贵任求谋,无破功名定有。 妻子早年克害,财源雨散云收。迁宗移祖免忧愁。中末家资成就。 ''', - - '乙日丙戌': ''' + + '乙日丙戌': ''' 六乙日生时丙戌,鬼败临身有损伤;若不气通身旺月,孤贫劳碌苦难当。 鬼败临身,戌中有辛余气、丙丁库,食神制煞,若柱透庚,伤官见官,为祸百端; 年月有寅午(三会),丙火合局,即一木叠逢火位,主人傲物气高,衣禄平常,残疾,不然寿促。 通身旺月气者,吉。 - + 乙日丙戌时火库,藏辛遇丑乃吉昌;若也运逢凶克害,算来此命且如常。 乙日相逢丙戌,伤官库木枝枯。不临辛丑钥匙无。难倚六亲父母,雁侣分飞不睦,于人心悲成疏。 要知发福改门闾,此命后甜先苦 ''', - - - '乙日丁亥': ''' + + + '乙日丁亥': ''' 六乙日生丁亥时,食神印绶亦奇哉;月气水土无财贵,切忌伤妻与子灾。 乙日丁亥时,死处逢生,乙木死,亥却气壬水为生气印绶, 乙用丁为食,亥中丁坐无气,喜甲木生,助丁食为福。如遇金局,行水运者,防目疾。 四柱见财,或行财运、贪财坏印,主破财。戊为财为妻,庚为官为子,亥上庚绝土病,妻衰子少。 - + 时上生逢亥与丁,食神乙木遇长生;月气相扶为最贵,身衰无倚是常人。 乙日时逢丁亥,食神印绶相扶。长生得意好无伤,荣显清名贵遇。 喜逢丁壬化气,运临冠带迁除。无机妙法实难窥,丙己寅申减贵。 ''', - - '丙日戊子': ''' + + '丙日戊子': ''' 六丙日生时戊子,财官生旺遇食神;月气相扶为最贵,身衰夫倚是常人。 丙日戊子时,官旺财生,丙用辛为财,癸为官,丙合辛,戊合癸,子中癸旺辛生,丙火无气。 若通火气,月有倚托者贵;不通贫下。通木气亦吉。 - + 活计生涯四季隆,丙逢戊子食官同;无伤晚岁皆成就,吉处遭凶险处通。 丙子时逢戊子,官星食福同排。午丁未遇且沉埋,交通中年大快。 父母妻子喜合。胸中隐匿文才。若逢好运一时来,富贵清闲自在。 ''', - - '丙日己丑': ''' + + '丙日己丑': ''' 六丙日生时己丑,官鬼相生禄不成;若见申庚并乙旺,不求财禄过平生。 丙日己丑时,伤官背禄,傲物志高。丙用癸为官,丑中有癸余气,被明暗土伤,柱透癸为祸。 若见庚辛,伤官生财,却为福庆。 - + 丙日财官库里藏,戌辰未字显文章;身衰若也无匙钥,求名求利总平常。 丙日时逢己丑,伤官财库暗藏。运交未戌不寻常。破出财官必旺。 近贵谋夺劫财,算来虽有害。六亲真假少和谐,直断依时莫怪。 ''', - - '丙日庚寅': ''' + + '丙日庚寅': ''' 六丙日生时庚寅,学堂生气助其身;运中有合通金局,必是荣华富贵人。 丙日庚寅时,生气学堂,丙寅上长生,文章秀气;丙以庚辛为财,寅上庚绝丙旺。 若通月气金局者财旺,富贵双全,喜西方运;不通局者财薄。 - + 丙庚相合遇寅时,险难消除福自随;运至寒门名将相,时来平步上云梯。 丙日庚寅时准,双亲衰旺离乡。妻儿早害晚荣昌,白虎归山正旺。 木有成林松柏,生涯广聚财粮。堆金积玉满高堂,共羡人言上样。 ''', - - '丁日壬寅': ''' + + '丁日壬寅': ''' 六丁日生时壬寅,身去从官化木神;水木月通成局象,尊荣安富贵无伦。 丁日壬寅时,身去从官,丁壬化木,寅上健旺,若水局之月,大贵;通木月亦贵。 如丁未月,行东方运,好。 - + 丁亥日壬寅时,日贵格,配合壬寅,官印俱全,文章显达。子月,大贵,化气凶。 丁壬合化入金乡,狗禄蝇名空自忙;节概衰残无足取,眼前骨肉亦参商。 丁日壬寅时合,化局木旺之乡。月支申酉不相逢,得意高人荐用。 父母雁行少力,外人喜笑春风,运逢水木没金踪,贵显荣达之命。 ''', - - '戊日己未':''' + + '戊日己未':''' 六戊日生时己未,羊刃偏官不怕冲;但是为人多性狠,平生衣禄亦无凶。 戊日己未时,羊刃偏官,戊以己为羊刃,甲为偏官,时上明暗二己为刃,甲木未中合局,若见刑冲破害,刃煞有制,主贵。 通月旺者平常衣禄,二十年,父母俱失;若不通月气,得寅申者贵。 @@ -287,16 +287,72 @@ 重谢花开结果,双亲雁行夭孤。自为自立自图谋,赖有贵人扶助。 ''', - '壬日庚子':''' - 六壬日生时丙午,聚财之地坐胞胎;月逢金水须富贵,弃命从来是就财。 - 壬日丙午时,禄马三奇。壬以己为官,丙丁为财,午上丁己是禄马,壬水受胎, - 有倚托,通金水月气,就财生旺,主富贵,通火气,亦贵。 + '壬日庚子':''' + 六壬日生时庚子,子上明庚暗损伤;火土月中仍主吉,不通凶狠只平常。 + 壬日庚子时,刃旺身强。壬以庚为倒食,癸为羊刃,时上明庚癸旺,若通火土月气,制伏庚癸,大贵; + 不通,凶狠平常。通运亦贵。 - 丙午时生壬日强,时中禄马不寻常;运行吉地无冲破,早晚升迁到省堂。 - 壬日时逢丙午,亦名禄马同乡,就中既济见文章,志气宽洪海量。 - 不过刑冲破害,自然财禄盈箱。运行财旺及官乡,定是朝中宰相。 + 天干壬日时庚子,枭日由来遇劫财;运弱妻儿防克害,运强财禄自天来。 + 壬日时逢庚子,劫财倒食流连,运行比劫事忧煎,财禄不能通显。 + 雁侣双亲失意,妻儿迟则团圆,财官运步福滔然,祖业从新改变。 ''', + + + '壬日辛丑':''' + 六壬日生时辛丑,下有官星上印绶;如通月气运西南,官印扶身人清秀。 + 壬日辛丑时,官印得位。壬以己为官,辛为印,丑上金局, + 暗已得位,若通月气,为人清秀,禄贵安稳;不通,主性僻诡谲。 + + 六壬日干辛丑时,官印相生事事奇;午月更通金土旺,为官清贵定无移。 + 壬日时临辛丑,财官印绶其中,要知开库钥匙通,戊己相逢火重。癸卯乙字减福, + 有遇龙虎相冲,只争迟早改门风,富贵承恩拜宠。 + ''', + + '壬日壬寅':''' + 六壬日生时壬寅,水火相逢既济论;水木月通财禄贵,不通无救是常人。 + 壬日壬寅时,水火既济。壬用丙为财,甲为食,寅上丙生甲旺,壬水无气,若通水局,有倚托,皆贵,不通无救,福薄。 + 壬寅日健旺,主大富,如不通月气,亦贵。 + + 六壬逢虎是浮沤,富贵功名莫强求;有印有官为上格,骤然财禄免忧愁。 + 壬日壬寅时遇,比肩相遇食神,弟兄雁侣少同群,此是生时定分。 + 坐局运行官地,身强禄位超伦,身衰刑害祸相侵,衣禄平常之命。 + ''', + + + '壬日癸卯':''' + 六壬日生时癸卯,引归死地势难安;劫财煞刃见伤鬼,倚托若无常命看。 + 壬日癸卯时,身死刃生。壬以癸为刃,卯为暗乙,而伤官鬼。 + 卯上癸生乙旺壬死,不通身旺月气,无救助及倚托者,夭贱。 + 巳酉丑月,印旺无化者,性僻孤高虚诈,通身旺,见金气,行才运,贵。伤官伤尽,行南运,亦贵。 + + 壬癸相逢见卯贵,刑冲破害不周全。月逢二德兼身旺,改祸为祥乐自然。 + 壬日时临癸卯,败财背禄相逐,平生反复事疑迟,水到东方失位。 + 须有贵人救助,自身文福难齐,祖财骨肉有盈亏,命主晚成先废。 + ''', + + + '壬日甲辰':''' + 六壬日生时甲辰,壬骑龙背坐食神;柱中有托无刑害,必是荣华富贵人。 + 壬日甲辰时,亦为壬骑龙背。壬以甲为食神,辰上壬水合局,甲有生气,食神旺相,通月气者富贵福厚。 + 冬月,行卯运,不利。 + + 时遇甲辰壬日干,喜神重叠福多端;时来早晚功名就,运至申辰作显官。 + 壬日甲辰时好,青龙入庙为高,犹如兰蕙出蓬蒿,水木滋生荣茂。 + 时日冲开库旺,自然成就窝巢,运行吉地逞英豪,贵显亲人难靠。 + ''', + '壬日乙巳':''' + 六壬日生时乙巳,身绝有财不聚财;进神暗鬼来相克,透己相刑是祸胎。 + 壬日乙巳时,财旺身绝。壬用丙为财,戊为鬼,庚为倒食。 + 巳上有乙木为伤官,丙戌健旺,庚金长生,壬水气绝,柱有己官,祸患百端,傲物夸高。 + 若不通身旺月无救助者,贫;有倚托,通旺,或行身旺运,皆吉。 + + 壬日时逢乙巳临,谋为未遇且沈吟:贵人举荐财官旺,子嗣鸳帏不一心。 + 壬日时临乙巳,伤官背禄无取,虽然天乙贵人扶,贵显遇而不遇。 + 谋望云为反覆,生平实事成虚,时来发达改门闾,犹似旱苗得雨。 + ''', + + '壬日丙午':''' 六壬日生时丙午,聚财之地坐胞胎;月逢金水须富贵,弃命从来是就财。 壬日丙午时,禄马三奇。壬以己为官,丙丁为财,午上丁己是禄马,壬水受胎, @@ -305,93 +361,152 @@ 丙午时生壬日强,时中禄马不寻常;运行吉地无冲破,早晚升迁到省堂。 壬日时逢丙午,亦名禄马同乡,就中既济见文章,志气宽洪海量。 不过刑冲破害,自然财禄盈箱。运行财旺及官乡,定是朝中宰相。 - ''', - + ''', + + '壬日丁未':''' + 六壬日生时丁未,夫化妻从格局奇;若是局中通水木,发财发福两相宜。 + 壬日丁未时,夫从妻化,壬合丁,未上同木局,贵。若月通木局,有倚托者发财,不通,但有资助,因妻致富。 + + 壬日时逢丁未临,木化成林忌见金;年月若还无破害,必教富贵福弥深。 + 壬日时临丁来,就中暗合妻财,好来丑戌钥匙开,收积钱财广大。年月克冲不犯,天然衣禄安排, + 鸳帏子息早年乖,中末依然享泰。 + ''', + + '壬日戊申':''' + 六壬日生时戊申,长生之地鬼伤身;身强制伏为高命,反此定知贫薄人。 + 壬日戊申时,水土混浊。壬以戊为鬼,庚为印,申上庚金健旺,壬水长生,戊土偏官,身鬼俱强, + 为人勇暴,若通旺月,行身旺运,有甲木制伏者贵;不通,聪明不贵,再行鬼旺运,难以显达。 + + 申时壬戌合天元,运去财官福自然;鬼旺身衰无救助,平生劳碌不周全。 + 壬日戊申时显,支干煞旺双全,喜逢辰子两相连,正合衣锦局面。 + 被害刑冲克战,就中文福艰难,运行吉地紫泥宣,富贵妻多子健。 + ''', + + '壬日己酉':''' + 六壬日生时己酉,明官暗印有扶持;月通身旺人清贵,犹恐恋花贪酒色。 + 壬日己酉时,败处逢生。壬水酉上沐浴,辛为生气印绶,酉上辛金旺,用己为官,酉上有明己 + ,若通月气有倚托,行财官运,贵,反是,平常。但犯桃花坐命,风流人物,恋花贪酒。 + + 天干壬日酉时真,改祸为祥遇贵人;若不为官封品级,晚年享福旺家门。 + 壬日时逢己酉,正官印绶无偏,荣枯贵贱是因缘,人自生成便见。乙癸卯冲破克,驳杂财官减半, + 遭富贵不双全,差了生时难辩。 + ''', + + '壬日己酉':''' + 六壬日生时己酉,明官暗印有扶持;月通身旺人清贵,犹恐恋花贪酒色。 + 壬日己酉时,败处逢生。壬水酉上沐浴,辛为生气印绶,酉上辛金旺,用己为官,酉上有明己 + ,若通月气有倚托,行财官运,贵,反是,平常。但犯桃花坐命,风流人物,恋花贪酒。 + + 天干壬日酉时真,改祸为祥遇贵人;若不为官封品级,晚年享福旺家门。 + 壬日时逢己酉,正官印绶无偏,荣枯贵贱是因缘,人自生成便见。乙癸卯冲破克,驳杂财官减半, + 遭富贵不双全,差了生时难辩。 + ''', + + '壬日庚戌':''' + 六壬日生时庚戌,身临财库却为鬼;明庚暗戌相刑克,财禄生平聚散多。 + 壬日庚戌时,枭临财库,壬以丙丁为财,库于戌,庚为倒食,戊偏官, + 若通火木月气,有倚托者,贵;不通,财帛聚散。 + + 壬庚相逢戌时生,库有财官锁闭门;究竟无头多反覆,功名到底似浮云。 + 壬日时逢庚戌,支干倒食难容。财官印绶库内封,无钥不能取用。丑酉辰逢作福,更逢丁己成名 + ,但怕克害过刑冲,驳杂如常之命。 + ''', + '壬日辛亥':''' + 六壬日逢辛亥时,印禄相随最是奇;财官不见无冲破,得路青云报尔知。 + 壬日辛亥时,日禄居时,无克破,有倚托,柱中不见财官,富贵显达;行东运,大贵; + 若通气,减福;南方运,不贵巨富。 + + 壬辛会遇亥时推,白玉休嫌出见迟;长生禄马无刑破,抛却麻衣挂紫衣。 + 壬日时临禄马,又为印绶同乡,水从金木自然强,此命极高为上。 + 癸乙暗合咸福,无冲破显文章,积玉堆金满屋堂,荫子封妻之象。 + ''', + + '癸日壬子':''' 六癸日生时壬子,青云得路最为奇;若无己土冲克破,自有功名显达时。 癸日壬子时,日禄归时,癸水子上建禄, 若年月干支无戊己午未字刑冲破害,三元有倚托,通月气者,文章秀丽,官职显达; 若通木气月,亦贵。如柱透己,有甲合,亦贵。否则,反覆。 - + 日禄归时局中得,食神喜遇怕刑冲;伤官莫道伤财运,官不加兮财不丰。 癸日时临壬子,名为归禄格同,家门白屋也峥嵘,玄武当权禄重。 水清宝瓶益盛,文章博览多通,荣迁来历紫薇封,甲午寅亥破动。 - + ''', - - '癸日癸丑':''' + + '癸日癸丑':''' 六癸日生时癸丑,支中暗鬼有刑伤;月通身旺防妻损,丑巳遥合贵异常。 癸以丁为妻,丑中丁火无气,若通身旺比肩之月,防损妻财。 柱丑寅多,以寅刑巳,丑合巳,刑出巳中,丙戊为财官,须干 头无戊己字,大贵。忌巳未卯破格。 - + 阴水重重时库收,少年难发莫强求;筹来受过中年后,安坐高堂任白头。 癸日时逢癸丑,水流金局盈冲,库逢戌未禄财丰,不过空乏难动。 无匙少年不显,有匙禄马和同,运来何用苦劳心,发达门庭大庆。 - + ''', - - '癸日甲寅':''' + + '癸日甲寅':''' 六癸日生时甲寅,刃复官禄减精神;柱中无有庚申字,刑合财官是贵人。 癸日甲寅时,刑合财官,癸以丙为财,戊为官,寅刑出巳中丙戊为财官, 若柱无官煞及刑冲破害损格,贵;有庚申戊己字,无制伏,不贵。 - + 甲寅癸日戊丙开,少年未遇且沉埋;若还四柱无冲破,平步登云到省台。 癸日寅时克应,支干相合光荣,若无壬己戊庚申,必然财禄丰润。 运至皇州显达,文章虎榜标名,但逢一字稍空冲,克子伤食剥俸。 ''', - - '癸日乙卯':''' + + '癸日乙卯':''' 六癸日生乙卯时,长生之地遇食神;众无午酉兼辛巳,福寿双全禄位人。 癸日乙卯时,食神干旺。癸以乙为学堂食神,卯上癸水长生,乙坐禄,柱中无己破辛夺, 午酉刑冲,通月气,有倚托,主聪明有寿,居官食禄;若有己土,不贵。春月生,北运,显达。 - + 乙癸相逢旺食支,天工造物本无私;运行自有高人荐,手攀丹桂上云逵。 癸日时逢乙卯,贵人食禄之乡,玉堂乙卯位侯王,便是金门将相。 君子文章播发,常人财禄盈箱,甲寅辛酉颇安常,富贵荣华大享。 ''', - - '癸日丙辰':''' + + '癸日丙辰':''' 六癸日生时丙辰,偏官无气未为贫;若无木气通其局,定是清高福禄人。 癸日丙辰时,身坐官库,癸用戊己为官,辰上土墓为官库, 见丙为财,辰为水局,丙火无气,癸水合局,柱无甲破官损库,主贵。 - + 癸日丙辰官库闭,财星虽透却无气;官要匙开财要兴,柱逢卯戊方为贵。 癸日丙辰时遇,库中锁闭财官,要逢卯戊钥匙开,守祖六亲阻碍。暗有食神相助,空乏虚度资财, 先贫后富命中排,改祖重兴渐快。 ''', - - '癸日丁巳':''' + + '癸日丁巳':''' 六癸日生时丁巳,贵地逢财遇暗官;有托就看财禄盛,无依必定福偏残。 癸日丁巳时,癸合财官,癸用丙为财,戊为官,庚为印,巳为天乙贵人。 巳上庚金长生,丙戊建禄,癸水受胎,若有倚托,通水气月,贵,不通水气。平常。 时逢三奇,大抵发于晚年。 - + 巳时禄马同争先,造化无私产大贤;刑冲减半无空克,运至声名扬九天。 癸日时临丁巳,贵人禄马同乡,三重蛇马正朝纲,玉殿金阶来往。壬亥申寅减半,只愁运落空亡, 果无冲克无刑伤,舞拜凤凰池上。 ''', - - '癸日戊午':''' + + '癸日戊午':''' 六癸日生时戊午,化火临时帝旺乡;运喜东南木火地,为官清正禄荣昌。 癸日戊午时,化气成火局,癸合戊化火,午上帝旺,合局而贵,身旺不化癸水,地方之气引到南方, 癸水无气,贵而寿促,东方运吉。 - + 将星扶禄命高低,见爱于人是与非;得志退毛鸡化凤,虎卧平坡被兔欺。 癸日时逢戊午,天元既济之方,化为真火显威光,灾难消除福长。 壬会甲寅减半,是非成败难防,六亲不睦暗刑伤,难得资财富旺。 ''', - - '癸日己未':''' + + '癸日己未':''' 六癸日生时癸未,鬼旺身衰福不齐;月气不通无救助,平常衣禄有相亏。 - + 偏官暗鬼库中埋,险难惊忧不聚财;丑戌相逢钥匙吉,旺中癸福定无灾。 癸日时临己未,库中耗鬼身衰,不逢卯戌钥匙开,锁闭不能通泰。 花落重荣结子,双亲雁侣难谐,纵然先贫后富来,弃旧迎新无碍。 ''', - - '癸日庚申':''' + + '癸日庚申':''' 六癸日生时庚申,官星印旺在其支;柱中无己丙寅巳,自有荣华富贵时。 癸日庚申时,作专印合禄。癸以戊为正官,庚为正印,申上庚旺戊生,以申合巳中戊丙, 癸日得财官,若有倚托,柱中无财及破害刑冲官印,主贵;柱中有财,行财运,反复进退,少贵。 @@ -400,8 +515,8 @@ 癸日庚申时正,印绶齐合官星,亥寅申丙巳刑冲,离合立之身不定。 无破黄甲显姓,常人财禄安宁,果无刑害与灾星,便是锦鸡化凤。 ''', - - '癸日壬戌':''' + + '癸日壬戌':''' 六癸日生日壬戌,支内正官生财库;月兼有救贵多成,倚托若无终不富。 癸日壬戌时,水火既济,癸用丙丁为财,戊土为官,戊与癸合旺,为人智谋,通月气有倚托者贵; 不通,平常;通火土月气,富贵双全;运气通,亦吉。 @@ -411,8 +526,8 @@ 土旺长流水局,六亲恩处成疏,不遇空亡有增余,中末荣华享福。 ''', - - '癸日癸亥':''' + + '癸日癸亥':''' 六癸日生时癸亥,禄马飞天临旺神;不见官星兼惹绊,必为贵格异常人。 癸日癸亥时,禄马飞天格,癸水亥健旺,癸用戊为官,丙为财,亥中丙戊俱绝, 癸无财官,却亥去冲出巳中丙戊,飞来就癸为财官,柱无戊己惹绊及官星破禄,若见庚辛, From ffe053e5566edf1a1c42dfb21c6ba9c33c129f46 Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 21 Mar 2019 14:41:34 +0800 Subject: [PATCH 037/122] =?UTF-8?q?Add=20=E8=BE=9B=E6=97=A5*=20to=20sizi.p?= =?UTF-8?q?y?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/sizi.py | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-) diff --git a/bazi/sizi.py b/bazi/sizi.py index 166b218..518930e 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -285,7 +285,125 @@ 未中戊己土成堆,刑害冲来事亦谐;先暗后明凶变吉,贵人提携出尘埋。 戊日时临己未,六亲骨肉成疏。喜逢火印暗中扶,甲乙寅卯为主。 重谢花开结果,双亲雁行夭孤。自为自立自图谋,赖有贵人扶助。 - ''', + ''', + + '辛日戊子':''' + 六辛日生时戊子,印绶学堂坐食神;不见丙丁同午破,必是荣华贵显人。 + 辛日戊子时,六阴朝阳。辛金子上长生学堂。辛以戊为印。癸为食,时上明戊暗癸, + 柱中不见丙丁午字,冲开;通身旺月,大贵;犯者不贵。不通月气,通运,亦贵。 + + + 天元六辛子时生,春天花开灿烂明。丙已午丁如破坏,功名难望晚方成。 + 辛日时逢戊子,六阴会合朝阳。金神印绶显威光,相助一身荣旺。已午逢之减福,丙离雁侣尊堂。 + 妻子勤助旺家庄、无破寒门将相。 + ''', + + '辛日己丑':''' + 六辛日生时己丑,金土持争势不安;年月财官相救助,免交贫困受饥寒。 + 辛日己丑时,金土相争。辛以己为倒食,丑上有明己暗辛。岁月无财官救助者,贫困;得财官运,亦吉。 + + 己丑时逢辛日险,财官埋没未为奇;六亲骨肉多刑害,年月冲开富贵推。辛日时临己丑,总由倒食淹留。 + 就中金柜紧监收,午未戌开成就。甲丙卯寅发福,癸壬亥子漂流。少年谋望事难周,中未前程自有。 + ''', + + '辛日庚寅':''' + 六辛日生时庚寅,财旺生官遇贵神;金木局中通月气,必为荣贵富豪人。 + 辛日庚寅时,贵人财官。辛以寅为天乙贵,丙火为官,甲木为财,寅上丙、甲旺,若通金木月气或通运,主富贵显达。 + + 六辛之日遇寅时,财旺生官互换推;运拙利名应蹇滞,若行财禄更无虞。 + 辛日庚寅时遇,弟兄骨肉生疏。双亲祖业靠难成,鸳侣中年违镜。 + 亥癸坎壬减福,丙丁巳午驰名。春生冬产贵人钦,中末荣华之命。 + ''', + + '辛日辛卯':''' + 六辛日生时辛卯,妻子难为遇比肩;秋产冬生贫下格,丙临寅马却当权。 + 辛日辛卯时,比肩分财。辛以乙为财,卯上乙旺,遇比分夺,损伤妻子。 + 生秋冬,财官无气,平常。寅巳午月,干透丙火,丙合辛生,官贵显达。辛卯,悬针煞,柱多不吉。 + + 辛日时逢辛卯,二辛分夺妻财。雁行鸳侣少合谐,独立自成无碍。 + 年月财星生旺,忻然禄自天来。运行比劫事沉埋,木火运中通泰。 + ''', + + '辛日壬辰':''' + 六辛日生时壬辰,伤官伤尽倍精神;四柱火虚防克害,九流技艺卜医人。 + 辛日壬辰时,暗金沉水底。辛用丙为官,壬为伤官,辰水库,丙辛无气,壬水合局。 + 若年月透丙,是伤官见官,刑祸百端,为人气高夸大,秀而不实。不通月气、无倚托者,为人反 + 复成败,为医卜艺术。柱有木火身旺,行东南运、贵。 + + 六辛日干时壬辰,锁闭财官事未能;不通钥匙兼压伏,自古难发少年人。辛日壬辰时遇,伤官伤尽为奇。 + 祖业父母早难为,雁行分飞无意。春夏财官生旺,东南方运施为。自谋自立作家资,不得亲人之力。 + ''', + + '辛日癸巳':''' + 六辛日生时癸巳,贵气无伤官印强;月气有通兼倚托,早年荣贵姓名香。 + 辛日癸巳时,官印扶身。辛以丙为官,戊为印,癸为食神。 + 巳上丙戊健旺,癸合化火,赤白文章。若有倚托、通月气者,显达;若月不通,运通,亦贵。 + + 癸巳时逢辛日干,柱中独喜显财官;运行禄马无刑地,金榜题名步御銮。 + 辛日时临癸巳,春生财旺 基。丙丁午年最为奇,破克刑冲不利。 + 壬癸庚申无破,功名富贵为的。妻贤子孝两相宜,刑破巳时不利。 + ''', + + '辛日甲午':''' + 六辛日逢甲午时,暗鬼枭神真可畏;若无倚托反劳生,莫道六辛逢马贵。 + 辛日甲午时,鬼旺身衰。辛用丁为鬼,己为倒食,甲为财。甲午木死则神无气,丁己健旺,虽见午为天乙贵,平生反复; + 纵通旺气,亦贵不永。若生火土月,西方运,贵。 + + 六辛日干时甲午,财神无气不相当;春生木旺财官运,一路滔滔姓字香。 + 辛日时临甲午,妻财无气身衰。干强火旺为鬼胎,火重金柔炼坏。 + 最忌用神伤损,金沉海底生灾。无刑无破称心怀,贵重光明广大。 + ''', + + '辛日乙未':''' + 六辛日生时乙未,火木相成金不畏;月通金气与春荣,财旺生官身自贵。 + 辛日乙未时,天财入库。辛以乙为财,未上入库;己为倒食,丁为正鬼; + 未上有暗丁,己被明乙制伏,不能为害。若通巳酉丑月者,贵,通火,行西运;通金,行南运,俱贵。 + + 未时辛日库门开,卓立家成自发财;金木运中身旺吉,几经险遇福重来。 + 辛日时逢乙未,库中透出偏财。运行木金忌身衰,丑戌之运通泰。 + 经历初年发福,鸳帏抵敌无灾。荣华富贵命中排,无破为官清泰。 + ''', + + '辛日丙申':''' + 辛日生时遇丙申,月通金火转精神;化成金水逢金地,聚福能为富贵人。 + 辛日丙申时,丙辛化水,申上长生。若月通巳酉丑金气者,精神秀丽,文章聚福。 + 通火气旺、有倚托者,贵。辛酉、辛未最妙,不成化象。申上官星无气,平常衣禄。 + + 辛日良时遇丙申,天元化合得其真;冬生若也无刑破。贵显当登要路津。 + 辛日丙申时遇,长生禄马希奇。天元化合显光辉,职重名高威势。 + 君子文章上立,常人荣旺家基。生时真定却无亏,运喜西南东地。 + ''', + + '辛日丁酉':''' + 六辛日生时丁酉,鬼破禄无祸百端;倚托身强方断吉,月通制伏是偏官。 + 辛日丁酉时,火金持争。辛金酉上健旺,见丁为正鬼;酉上丁长生,破禄,不成其福,反复成败。 + 身强通月气有制伏者,作偏官论;更行身旺运,贵。通金气无丁,身强,行南运,大贵。 + + 酉时辛日等同论,出户相迎喜事新;不遇刑冲空克破,何愁富贵不加身。 + 辛日时临丁酉,偏官合局相投。丙、丁重见主淹留,嗣息女多男少。 + 祖业残花秋暮,游人皎月云收。身强官旺福优游,运至财官大有。 + ''', + + '辛日戊戌':''' + 六辛日生时戊戌,印绶生身坐禄堂;有托福人难靠祖,不通月气是平常。 + 辛日戊戌时,禄同印堂同居。辛以戌为禄堂,戌上有明戊为印绶; + 以丙、丁为官,戌上戊土正位,丙、丁火局。若有倚托通月气者,难为祖业。不通,平常。 + + 辛日戌时财库闭,如开须待丑辰来;月中甲丙天干透,富贵荣华不用猜。 + 辛日时临戊戌,五行财禄荣昌。柱中辰、戌两相当,名曰钥匙开藏。 + 火水光辉发达,空亡锁闭如常。运行财地并官乡,无破天然福相。 + ''', + + '辛日己亥':''' + 六辛日生时己亥,背禄剥官反破伤;如作飞天禄马贵,失时无合空忙忙。 + 辛日己亥时,飞禄合局。辛以丙为官,亥上有旺壬伤,故官无气;如再得亥月或亥日,以亥冲出巳中丙火为官星。 + 若是辛西、辛丑合局,贵;其余辛无合。不通月气,无倚托,贫下;有倚托,吉。 + + 辛日天干己亥时,枭神背禄主灾虞;无冲发福亦不重,禄马飞天贵自殊。 + 辛日时临己亥,枭神背禄同宫。好如缺月被云龙。壬巳甲寅无用。 + 父母完全不睦,残花结果防风。若无克破与刑冲,飞天禄马福重。 + ''', + '壬日庚子':''' 六壬日生时庚子,子上明庚暗损伤;火土月中仍主吉,不通凶狠只平常。 From 7df5d0b8e3656c45849d3c2c9ffafab35a955fa2 Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 21 Mar 2019 17:50:24 +0800 Subject: [PATCH 038/122] Add shouxiang demo --- bazi/bazi.py | 6 +-- bazi/ganzhi.py | 106 ++------------------------------------------- shouxiang/hand.py | 25 +++++++++++ shouxiang/palm.jpg | Bin 0 -> 32547 bytes 4 files changed, 31 insertions(+), 106 deletions(-) create mode 100644 shouxiang/hand.py create mode 100644 shouxiang/palm.jpg diff --git a/bazi/bazi.py b/bazi/bazi.py index 484a1d5..918e938 100644 --- a/bazi/bazi.py +++ b/bazi/bazi.py @@ -285,7 +285,7 @@ def check_subset(gans, db, desc): print(item, db[item]) return flag -check_subset(gans, gan_hes, '十干合') +check_subset(gans, gan_hes, '十干合 https://www.jianshu.com/p/3d770f21c677') check_subset(gans, gan_chongs, '十干冲 https://www.jianshu.com/p/ac958d44835f') check_subset(zhis, zhi_6hes, '地支六合: 男子忌合绝,女人忌合贵。') if not check_subset(zhis, zhi_3hes, '地支三合'): # 如果三合,没必要检查半合 @@ -507,7 +507,5 @@ def check_subset(gans, db, desc): print(list(gans).count('癸')) short = min(scores, key=scores.get) -print("\n\n五行缺{}的建议".format(short)) -print("=========================") -print("{}".format(gan_health[short])) +print("\n\n五行缺{}的建议参见https://www.jianshu.com/p/0ed28f3a7f37".format(short)) diff --git a/bazi/ganzhi.py b/bazi/ganzhi.py index 4c31abb..3dcbb32 100644 --- a/bazi/ganzhi.py +++ b/bazi/ganzhi.py @@ -98,21 +98,10 @@ gan_hes = { ("甲", "己"): "中正之合 化土 尊崇重大,宽厚平直。如带煞而五行无气则多嗔好怒,性梗不可屈", - ("乙", "庚"): ''' - 仁义之合 化金 果敢有守, 不惑柔佞,周旋唯仁,进退唯义。 - 五行生旺则骨秀形清,若死个性果敢刚健,很重义气。若四柱中有七杀,或逢死绝者,勇而无谋。 - 绝带煞则使气好勇,体貌不扬,自是非人。甲己、乙庚之合, 妇人不忌。''', - ("丙", "辛"): ''' - 威制之合 化水 仪表威肃,人多畏惧,酷毒,好贿喜淫,若带煞或五行死绝则寡恩少义,无情之人。 - 妇人得之,与天中、大耗、咸池相并者,貌美声卑,夭冶而淫。''', - ("丁", "壬"): ''' - 淫慝之合 化木 眼明神娇, 多情易动,不事高洁,习下无去,枕欢溺色,于我则吝,于彼则贪, - 若五行死绝或带煞,见咸池、大耗、天中自败,有淫污家风之丑;亲厚小人,侮慢君子,贪婪妄作, - 必胜而后已。妇人淫邪奸慝,易挑易诱,多招玷辱,或年高而嫁少夫,或年幼而配老夫, - 或先贱而后良,或先良而后贱。''', - ("戊", "癸"): ''' - 无情之合 化火 合而无情,主人或好或丑,如戊得癸则娇媚,姿美得所,男子娶少妇,妇人嫁美夫; - 若癸得戊则形容古朴,老相俗尘,男子娶老妻,妇人嫁老夫''', + ("乙", "庚"): '''仁义之合 化金 果敢有守, 不惑柔佞,周旋唯仁,进退唯义。''', + ("丙", "辛"): '''威制之合 化水 ''', + ("丁", "壬"): '''淫慝之合 化木 ''', + ("戊", "癸"): '''无情之合 化火''', } gan_chongs = {("甲", "庚"): "相冲", ("乙", "辛"): "相冲", @@ -232,93 +221,6 @@ "庚":('丁',"午", "戌","未"), "辛":('丙',"寅",'巳'), "壬":('己',"午",'未','丑'), "癸":('戊',"寅","辰",'巳','申','戌'),} -gan_health = { - "金":''' - 秋天较走运 - 申月、酉月、猴年和鸡年运气较好 - 下午三点至下午七点是吉时 - 西方是吉方 - 住朝西的房子较吉利 - 睡房在房子的西方较好 - 睡房的西方有窗字较顺利 - 金属床有利健康 - 办公桌朝西有助工作效率 - 吉祥颜色是白色 - 室内装璜用白色系统 - 穿衣用白色系列 - 开白色车子较平安易发财 - 勿伤心,注意呼吸系统、肺、肠, 筋 - 武术、击搏、兵器运动、健身房运动也很好 - 和金有关的工作较容易''', - "木":''' - 春天或清风徐来的天气较走运 - 卯月、寅月、兔年和虎年运气较好 - 上午三点至上午七点是吉时 - 东方是吉方 - 住朝东的房子较吉利 - 睡房在房子的东方较好 - 睡房的东方有窗字较顺利 - 木床有利健康 - 办公桌朝东有助工作效率 - 吉祥颜色是绿色 - 室内装璜用绿色系统 - 穿衣用绿色系列 - 开绿色车子较平安易发财 - 多喝点酸性饮料,忌生气,注意神精系统、肝、胆、头肩、肝胆 - 多打高尔夫球、公园散步、徒步树林等户外运动 - 和木有关的工作较容易。''', - "水":''' - 身体需要注意: 胫足、膀胱肾(比如结石) 多喝水 - 冬天或冷天气较走运 - 亥月、子月、猪年和鼠年运气较好 - 晚上九点至上午一点是吉时 - 北方较冷是吉方 - 住朝北的房子较吉利 - 睡房在房子的北方较好 - 睡房的北方有窗字较顺利 - 金属床或水床有利健康 - 办公桌朝北有助工作效率 - 吉祥颜色是黑色 - 室内装璜用黑色系统 - 穿衣用黑色系列,带珠宝也不错 - 开黑色车子较平安易发财 - 多喝水,注意肾脏系统 - 多做游泳、潜水、滑雪、钓鱼、溜冰等户外运动 - 和水有关的工作较容易。''', - "火":''' - 夏天或热天气较走运 - 午月、巳月、马年和蛇年运气较好 - 上午九点至下午一点是吉时 - 南方较热是吉方 - 住朝南的房子较吉利 - 睡房在房子的南方较好 - 睡房的南方有窗字较顺利 - 木床有利健康 - 办公桌朝南有助工作效率 - 吉祥颜色是红色 - 室内装璜用红色系统 - 穿衣用红色系列 - 开红色车子较平安易发财 - 要常笑,注意心脏系统、血液循环、眼睛、额齿 - 多做打篮球、网球、排球、骑单车等户外运动 - 和火有关的工作较容易''', - "土":''' - 春、夏、秋、冬四季交接之时段较走运 - 丑、辰、未、戌月和牛、龙、羊、狗年运气较好 - 上午二点、八点左右和下午二点、八点左右都是吉时 - 起居环境和气候不要太乾或太湿 - 睡房在房子的中间较好 - 办公桌靠房子的中间,有助工作效率 - 吉祥颜色是棕黄色 - 室内装璜用棕黄色系统 - 穿衣用棕黄色系列,带古玉很不错 - 开棕黄色车子较平安易发财 - 勿常担心事情,太多虑 - 吃些甜点,注意消化系统、脾、肌肉 - 多做园艺、露营、走路等户外运动。下棋、宗教场所都好 - 和土有关的工作较容易''', -} - gan_desc = { "甲":'''雷龙 梁栋 禄寅;斧斤斫削成其器。木不南奔;喜春运不喜西方,春生,处世安然,必寿。''', diff --git a/shouxiang/hand.py b/shouxiang/hand.py new file mode 100644 index 0000000..5a85db6 --- /dev/null +++ b/shouxiang/hand.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Author: 钉钉或微信pythontesting 技术支持qq群:630011153 144081101 +# +# CreateDate: 2019-2-21 +import cv2 +image = cv2.imread("palm.jpg") +cv2.imshow("palm",image) #to view the palm in python +cv2.waitKey(0) + +gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) + +edges = cv2.Canny(gray,60,65,apertureSize = 3) +cv2.imshow("edges",edges) +cv2.waitKey(0) + +edges = cv2.bitwise_not(edges) +cv2.imshow("change black and white",edges) +cv2.waitKey(0) + +cv2.imwrite("palmlines.jpg", edges) +palmlines = cv2.imread("palmlines.jpg") +img = cv2.addWeighted(palmlines, 0.3, image, 0.7, 0) +cv2.imshow("lines in palm", img) +cv2.waitKey(0) \ No newline at end of file diff --git a/shouxiang/palm.jpg b/shouxiang/palm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eedf2573e067792fa50f2e0894789a318199df9e GIT binary patch literal 32547 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 YMR{s;)#ckYnFPL?|8G`3#ozP)4^fWkeE Date: Thu, 21 Mar 2019 22:57:25 +0800 Subject: [PATCH 039/122] =?UTF-8?q?Add=20=E4=B8=99*=20in=20sizi.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/ganzhi.py | 2 +- bazi/sizi.py | 45 ++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/bazi/ganzhi.py b/bazi/ganzhi.py index 3dcbb32..f1618e5 100644 --- a/bazi/ganzhi.py +++ b/bazi/ganzhi.py @@ -85,7 +85,7 @@ "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥', "六合":"亥","暗合":"丑",}, "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午', "六合":"戌","暗合":"申",}, "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑', "六合":"酉","暗合":"丑",}, - "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","巳"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申","暗合":"酉",}, + "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","丑"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申","暗合":"酉",}, "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯', "六合":"未","暗合":"亥",}, "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午","暗合":"丑",}, "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳', "六合":"巳","暗合":"卯",}, diff --git a/bazi/sizi.py b/bazi/sizi.py index 518930e..9cb1f01 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -235,7 +235,7 @@ 喜逢丁壬化气,运临冠带迁除。无机妙法实难窥,丙己寅申减贵。 ''', - '丙日戊子': ''' + '丙日戊子': ''' 六丙日生时戊子,财官生旺遇食神;月气相扶为最贵,身衰夫倚是常人。 丙日戊子时,官旺财生,丙用辛为财,癸为官,丙合辛,戊合癸,子中癸旺辛生,丙火无气。 若通火气,月有倚托者贵;不通贫下。通木气亦吉。 @@ -245,7 +245,7 @@ 父母妻子喜合。胸中隐匿文才。若逢好运一时来,富贵清闲自在。 ''', - '丙日己丑': ''' + '丙日己丑': ''' 六丙日生时己丑,官鬼相生禄不成;若见申庚并乙旺,不求财禄过平生。 丙日己丑时,伤官背禄,傲物志高。丙用癸为官,丑中有癸余气,被明暗土伤,柱透癸为祸。 若见庚辛,伤官生财,却为福庆。 @@ -255,7 +255,7 @@ 近贵谋夺劫财,算来虽有害。六亲真假少和谐,直断依时莫怪。 ''', - '丙日庚寅': ''' + '丙日庚寅': ''' 六丙日生时庚寅,学堂生气助其身;运中有合通金局,必是荣华富贵人。 丙日庚寅时,生气学堂,丙寅上长生,文章秀气;丙以庚辛为财,寅上庚绝丙旺。 若通月气金局者财旺,富贵双全,喜西方运;不通局者财薄。 @@ -264,6 +264,45 @@ 丙日庚寅时准,双亲衰旺离乡。妻儿早害晚荣昌,白虎归山正旺。 木有成林松柏,生涯广聚财粮。堆金积玉满高堂,共羡人言上样。 ''', + '丙日辛卯': ''' + 六丙日生时辛卯,旺木双妻为人巧; 不旺化水死乡中,色欲随身多爱好。 + 丙日辛卯时,败财逢合,丙日卯上沐浴,见辛合神。若身甚旺不得化者,只是为人无礼而贪色欲, + 却好如身弱化水,卯上水死,秀而不实,为人惯巧虚诈。惟丙午、丙寅、春月生, 身旺不化者,文贵显秀。 + + 丙辛化水不相当,有助身强大吉昌; 四柱若逢冲克破,劳心劳力过时光。 + 丙日时逢辛卯,贪财坏印难成。财官运步显名声,身弱性情不定。 + 父母六亲难靠,挺身改祖方成。雁行各自望前程,有破如常之命。 + ''', + + '丙日壬辰': ''' + 六丙日生时壬辰,煞星坐库火难亲; 身强反主为官贵,如弱定为贫夭人。 + 丙日壬辰时,水火未济。丙见壬偏官,辰上壬水合局,火 死无光。若生春夏,身旺化鬼为官,复行身旺运,贵。 + 秋冬, 身衰鬼旺,更无倚托,贫下残疾。 + + 丙日壬辰怕见申,再逢阳水定灾屯; 柱中若得寅午戌,变凶为吉贵绝伦。 + 丙日壬辰时墓,身衰耗鬼当途。雁行难倚不相扶,妻子何须缘误。 + 君子文章福助,常人恩反成疏。运行官禄任谋图,无破不贵即富。 + ''', + + '丙日癸巳': ''' + 六丙日生时癸巳,日禄归时又遇官; 不见巳寅壬癸月,功名唾于得何难。 + 丙日癸巳时,日禄归时,丙火巳上见癸为正官,坐贵。柱无壬己并寅亥,冲刑者贵,有则否。 + 官通水旺,丙通木旺,无有不贵。 + + 丙日时逢癸巳真,号为正贵喜相亲; 柱中年月无冲破,必是荣华富贵人。 + 丙日时逢癸巳,正官禄马稀奇。算来妻子早难为,官禄冲克最忌。 + 君子文名出众,常人财禄有余。黄金白玉出沉泥,运至时来偏聚。 + ''', + + '丙日癸巳': ''' + 六丙日生时癸巳,日禄归时又遇官; 不见巳寅壬癸月,功名唾于得何难。 + 丙日癸巳时,日禄归时,丙火巳上见癸为正官,坐贵。柱无壬己并寅亥,冲刑者贵,有则否。 + 官通水旺,丙通木旺,无有不贵。 + + 丙日时逢癸巳真,号为正贵喜相亲; 柱中年月无冲破,必是荣华富贵人。 + 丙日时逢癸巳,正官禄马稀奇。算来妻子早难为,官禄冲克最忌。 + 君子文名出众,常人财禄有余。黄金白玉出沉泥,运至时来偏聚。 + ''', '丁日壬寅': ''' 六丁日生时壬寅,身去从官化木神;水木月通成局象,尊荣安富贵无伦。 From 785cb758fa70dbd565c6a9a6ce1823f6080b569f Mon Sep 17 00:00:00 2001 From: andrew Date: Thu, 21 Mar 2019 23:30:48 +0800 Subject: [PATCH 040/122] =?UTF-8?q?Add=20=E4=B8=81=E6=97=A5=E8=BE=9B?= =?UTF-8?q?=E4=B8=91=20in=20sizi.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/sizi.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/bazi/sizi.py b/bazi/sizi.py index 9cb1f01..4cc3834 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -303,6 +303,18 @@ 丙日时逢癸巳,正官禄马稀奇。算来妻子早难为,官禄冲克最忌。 君子文名出众,常人财禄有余。黄金白玉出沉泥,运至时来偏聚。 ''', + + '丁日辛丑': ''' + 六丁日生时辛丑,库中财谷多陈朽; 身无依倚不为凶,有托妻贤而富厚。 + 丁日辛丑时,丑为财库,辛为妻财,已为食神,丑旺金局, 暗己得位,丁火无气,若失天时无倚托者,就妻而发; + 有倚托 救助者,财食丰足。 + + 丁巳日辛丑时,因阴人致贵。巳酉丑申年月,财旺生官, 富贵。卯月平常,行此运亦贵。丑月,西南运,大贵。 + + 辛丑遇丁为宝库,柱无匙钥难言富; 刑冲运至遇高人,发迹他乡名誉著。 + 丁日时逢辛丑,偏财库喜刑冲。若还不显有虚名。 妻子宜尔相庆,父母雁行难睦。家门换改重新,发财发福 + 见中兴。必是荣华之命。 + ''', '丁日壬寅': ''' 六丁日生时壬寅,身去从官化木神;水木月通成局象,尊荣安富贵无伦。 @@ -411,7 +423,8 @@ 辛日良时遇丙申,天元化合得其真;冬生若也无刑破。贵显当登要路津。 辛日丙申时遇,长生禄马希奇。天元化合显光辉,职重名高威势。 君子文章上立,常人荣旺家基。生时真定却无亏,运喜西南东地。 - ''', + ''', + '辛日丁酉':''' 六辛日生时丁酉,鬼破禄无祸百端;倚托身强方断吉,月通制伏是偏官。 From 80d3510b652b1d245ebf78b6fed5d6d9151d5577 Mon Sep 17 00:00:00 2001 From: andrew Date: Wed, 3 Apr 2019 06:10:25 +0800 Subject: [PATCH 041/122] =?UTF-8?q?Update=20sizi.py=20for=20=E5=A3=AC?= =?UTF-8?q?=E3=80=80=E7=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bazi/sizi.py | 341 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 327 insertions(+), 14 deletions(-) diff --git a/bazi/sizi.py b/bazi/sizi.py index 4cc3834..007c560 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -10,7 +10,7 @@ 否则,秀而不实。 -- 如果有己土化比肩为佳。 ''', - '甲日乙丑': ''' + '甲日乙丑': ''' 劫财羊刃不宜有;柱中逢火带辛金,制伏和平贵亦久。 乙克丑中的财;乙丑为海中金,若年日时合成火局,制伏金,主德性纯和而贵;无火凶狠;如合水局凶恶损家。 @@ -18,7 +18,7 @@ 贵人天乙被乙劫财伤害。火局南方运贵,金神制伏相当。木枯水盛且平常,背祖离乡晚旺。 ''', - '甲日丙寅': ''' + '甲日丙寅': ''' 甲木寅上健旺,丙为食神, 且通火气, 寿星在位 通火木月气者贵,忌见官星及申冲禄。 甲丙相邀入虎乡,福星坐禄显文章;运逢四柱无伤害,早晚陛迁至宪堂。 @@ -26,7 +26,7 @@ 生来贵显有人提,此命先难后易。 ''', - '甲日丁卯': ''' + '甲日丁卯': ''' 伤官羊刃真当恼;纵然月气有扶持,未免为人性不好。 乙木克己财,为人凶狠。若柱透辛,伤官见官,刑害百端,运气凶险,不得善终; 柱有七煞合刃,行财官印绶,大贵。 @@ -224,7 +224,7 @@ ''', - '乙日丁亥': ''' + '乙日丁亥': ''' 六乙日生丁亥时,食神印绶亦奇哉;月气水土无财贵,切忌伤妻与子灾。 乙日丁亥时,死处逢生,乙木死,亥却气壬水为生气印绶, 乙用丁为食,亥中丁坐无气,喜甲木生,助丁食为福。如遇金局,行水运者,防目疾。 @@ -294,15 +294,64 @@ 君子文名出众,常人财禄有余。黄金白玉出沉泥,运至时来偏聚。 ''', - '丙日癸巳': ''' - 六丙日生时癸巳,日禄归时又遇官; 不见巳寅壬癸月,功名唾于得何难。 - 丙日癸巳时,日禄归时,丙火巳上见癸为正官,坐贵。柱无壬己并寅亥,冲刑者贵,有则否。 - 官通水旺,丙通木旺,无有不贵。 + '丙日戊戌': ''' + 六丙日生时戊戌,火局之中遇食神;月气火通为福寿,不通逢吉亦常人。 + 丙日戊戌时,寿永,名利不失。寅亥卯未印及申酉戌已年月生,贵。 + 丙寅日戊戌时,庙堂食神,丙以戊为食神寿星,戌上丙火入库,戊土专位,若通火气月及东南运,福厚有寿;不通,平常。 - 丙日时逢癸巳真,号为正贵喜相亲; 柱中年月无冲破,必是荣华富贵人。 - 丙日时逢癸巳,正官禄马稀奇。算来妻子早难为,官禄冲克最忌。 - 君子文名出众,常人财禄有余。黄金白玉出沉泥,运至时来偏聚。 + 丙子日戊戌时,寿永,名利不失。家亥卯未印及申酉戌已年胜,贵。 + + 丙子日戊戌时,夏月,福寿双全。春,木克土,食神被枭。寅月,丙戊俱长生,最吉。有申庚制甲,大贵。秋冬火衰贫下。巳申亥年月,风宪极品。 + + 丙辰日戊戌时,午月,丙火有气,土厚地方,五六品贵。亥月,金火运,风宪。 + + 丙午日戊戌时,羊刃食神健旺,名利骤发,亥未辰戌年月,西方运,风宪。 + + 丙申日戊戌时,亥月,东方运,贵。寅午身旺,干透财,吉。丑辰刑冲戌库,发于晚年。 + + 丙戌日戊戌时贫,若通寅巳午戌火局,福寿双全,大贵。见财亦吉。 + + 时上食神局,楼台店舍中;茶房饼酒肆,几度立家风。丙日戌时财库开,少年未遇且沉埋; + 运通早晚通官爵,设若无官也发财。 + + 丙日时逢戊戌,就中仓库兼全。重重福禄自天然,富贵妻贤子羡。 + 君子文章早立,常人财物绵延。天孤父母早淹连,辰戌钥匙开显。 ''', + + '丙日己亥': ''' + 六丙日生时己亥,亥中壬旺被己伤;若通月气方为贵,寅卯不逢主泛常。 + 丙日己亥时,鬼旺身绝,丙见己为伤官,壬为正鬼,甲为倒食,亥上有明己,旺壬生甲,丙火绝气, + 若通身旺月有倚托者,化鬼为官,主贵,终亦凶狠。通身旺运亦贵; + 身弱无倚托,不通月气,柱中透出壬字,为祸百端,傲物气高,主平常。 + + 丙子日己亥时,秋冬,平常。未月,行水木运,干透木火者,贵。子月,行东运,大贵。申、亥、丑、戌年月,亦贵。 + + 丙寅日己亥时,夏生,化鬼为官,妻贤子孝,不贵则富。 + + 寅卯辰巳申丑年月,或午戌会局,天干更透丙戌字,主大权贵。 + + 丙辰日己亥时,日德格。寅月生,吉,辰月,为僧道主富,平人孤克。戌月冲辰,巳月冲亥, + 丙旺库,俱吉。卯未会,行金水运,申子会,行木火运,俱贵。 + + 丙午日己亥时,武贵。寅巳午月生,妻重子晚,不贵即富。秋冬,名利进退,酉午戌,大贵。 + + 丙申日己亥时,春夏生,移根换叶,就妻改福。秋冬平常。酉月,行东南运,风宪。 + + 丙戌日己亥时,寅卯巳午,木生火炎,妻伤子少,聪明富贵;酉亥子丑,平常,东运亦贵。 + + 丙日亥时命最高,犹如兰蕙出蓬蒿;四柱若兼冲克破,求名求利却虚劳。 + 丙日时临己亥,若无壬字希奇。命中子少两三妻,就里喜逢天乙。 + 父母雁侣行远,刑空文福难齐。皆因八字有高低,切忌贪财罢职。 + ''', + + '丁日庚子': ''' + 六丁日生时庚子,身衰鬼旺暗中藏;月无救助多贫夭,得坐身强又吉昌。 + 若通身旺月,有倚托者贵,更行身旺运,大贵;反是,贫夭下贱。 + + 庚子时逢日是丁,火落江湖暗复明;四柱若兼冲克破,读书到老只虚名。 + 丁日时逢庚子,日干丁火光辉。火胎金绝有盈亏,妻妾不能全美。 + 有克有刑冲破,就中文福难齐。相生相救贵人提,此命先难后易。 + ''', '丁日辛丑': ''' 六丁日生时辛丑,库中财谷多陈朽; 身无依倚不为凶,有托妻贤而富厚。 @@ -316,7 +365,7 @@ 见中兴。必是荣华之命。 ''', - '丁日壬寅': ''' + '丁日壬寅': ''' 六丁日生时壬寅,身去从官化木神;水木月通成局象,尊荣安富贵无伦。 丁日壬寅时,身去从官,丁壬化木,寅上健旺,若水局之月,大贵;通木月亦贵。 如丁未月,行东方运,好。 @@ -326,9 +375,104 @@ 丁壬合化入金乡,狗禄蝇名空自忙;节概衰残无足取,眼前骨肉亦参商。 丁日壬寅时合,化局木旺之乡。月支申酉不相逢,得意高人荐用。 父母雁行少力,外人喜笑春风,运逢水木没金踪,贵显荣达之命。 - ''', + ''', + + '丁日癸卯': ''' + 六丁日生时癸卯,鬼旺身衰困不禁;倚托月通方论福,不然贫下苦悲心。 + 乙为倒食,卯上癸生乙旺,若有倚托救助及身旺月,化鬼为官,吉,柱无运通亦吉;反此贫下,失明血疾,妻灾子少。 - '戊日己未':''' + 丁丑日逢癸卯生,求名求利且中平;身衰弄巧反成拙,得志须通遇贵人。 + 丁日时临癸卯,身衰无倚平常。门中鬼贼耗财粮,守祖须防破荡。 + 父母雁行少靠,妻子不免离乡。运中身旺煞方降,堪许利名荣畅。 + ''', + + '丁日甲辰': ''' + 六丁日生时甲辰,官星得位印生身;不通月气平为福,有倚扶同禄贵人。 --有误,应该是杀 + 丁日甲辰时,印绶官库,甲为印,壬为官,辰中甲木印绶生身,官星合局,若通月气,有倚托者贵,否则平常。春生, +喜北运;冬生,喜南运,吉。 + + 丁日时逢官印同,匙开财库见钱龙;支干四柱无刑破,运至方称富贵翁。 + 丁日辰时库旺,其中印绶相生。匙钥戌开喜壬丁,文秀出群超众。骨肉六亲刑克,果成花谢重荣。 + 只争运迟见钱龙,先暗后明之命。 + ''', + + '丁日乙巳': ''' + 六丁日生时乙巳,伤官暗里会枭神;东方运地成虚秀,金水之乡禄贵人。 + 丁日乙巳时,丁以壬为官,乙为倒食,巳上壬绝,有明乙倒食,暗戊伤官健旺,为人傲物志高,平常。 + 若通金水月气,贵。运通亦贵。 + + 丁日巳时怕虎刑,财官运步始能通;好意人情反恶意,先难后易乐从容。 + 丁日时临乙巳,破财倒食难通。双亲雁侣且和平,妻子无嗔无闷。 + 君子文学秀气,常人财艺通明。壬庚辛癸若重逢,中末财名足用。 + ''', + + '丁日丙午': ''' + 六丁日生逢丙午,日禄喜居时上遇;柱中鼠兔癸无伤,少年腾达青云路。 + 丁日丙午时,青云得路。丁火午上建禄,若支无枭破,干无癸刑,禄元纯粹,主贵。如支有子卯,干有癸破禄,遇而不遇。 + + 午时丁日禄元局,不见官星压众曹;四柱无刑行运吉,青云有路步丹霄。 + 丁日时逢丙午,互换禄马光辉。功名煊赫世应希,习学文章主贵。 + ''', + + '丁日丁未': ''' + 六丁日生时丁未,火托木局生有气;衣禄安稳且如常,运见水兮方得地。 + 丁日丁未时,火托木局,丁以甲为印绶,未为木库印绶之乡, + 若柱不见财星,不行财运,月年通亥卯未局,有倚托者,安稳之福。 + + 二丁相遇未时排,险路中年发福来;运吉贵人相会合,安闲衣禄不须猜。 + 丁日时逢丁未,其中仓库沉埋。少年难发等时来,丑未相冲通泰。不靠双亲雁侣,花开收果妻财。 + 时逢寿足福重来,末遇荣华堪快 + ''', + + '丁日戊申': ''' + 六丁日生时戊申,天元背禄败其身;月无救助财难发,只是平常衣禄人。 + 丁日戊申时,身败背禄,丁以壬为官,申上见戊土伤克,若年月干透,壬,见官为祸,虽有旺庚为财,自败不能制克, + 不通身旺月者平常。喜甲寅年月,忌壬子。 + + 丁亥日戊申时,日时相害,忧伤妻子。通月气身旺者,贵显。年月戊戌、丁巳,火土太重者目疾。 + 丁日戊申时为正,天元气旺显文明;为官虽是甘淡薄,运吉终须家道成; + ''', + + '丁日戊申': ''' + 六丁日生时戊申,天元背禄败其身;月无救助财难发,只是平常衣禄人。 + 丁日戊申时,身败背禄,丁以壬为官,申上见戊土伤克,若年月干透,壬,见官为祸,虽有旺庚为财,自败不能制克, + 不通身旺月者平常。喜甲寅年月,忌壬子。 + + 丁亥日戊申时,日时相害,忧伤妻子。通月气身旺者,贵显。年月戊戌、丁巳,火土太重者目疾。 + 丁日戊申时为正,天元气旺显文明;为官虽是甘淡薄,运吉终须家道成; + ''', + + + '丁日己酉': ''' + 六丁日生时已酉,学堂遇贵格诚稀;妻子有气食神旺,无破无刑方是奇。 + 丁日己酉时,丁火酉上长生,学堂、天乙贵人皆兼得之。丁用己为食,辛为财,酉上明己暗辛生旺, + 文章秀丽,如见卯乙冲破者不贵。 + + 丁日酉时终见贵,偏财食遇禄无归;干支生旺凶中吉,冲破财星隐祸机。 + 丁日时临己酉,食神旺相生财。清闲福禄自然来,一世为人响快。 + 君子宽洪海量,常人四海情怀。财官双美象中排,一路滔滔无碍。 + ''', + + '丁日庚戌': ''' + 六丁日生时庚戌,墓中逢败难成福;若无救助鬼来伤,财帛不聚伤其目。 + 丁日庚戌时,墓中逢败,丁以庚辛为财,戌中有丙为败,不成其福。若无救助,叠见癸水,主伤目。 + + 丁日时逢戌刻真,锁钥无匙库闭门;父母兄弟难依靠,立成家计自殷勤。 + 丁日时逢庚戌,火金刑害夭孤。丑辰不遇钥匙无,库闭财能收贮。就合托妻随住,六亲骨肉消疏。 + 晚年发福改门闾,此命后甜先苦。 + ''', + + '丁日辛亥': ''' + 六丁日生时辛亥,财官双美印长生;若通月气极高贵,月不通兮名利轻。 + 丁日辛亥时,财官双美,丁用壬为官,辛为财,甲为印,亥上有明辛为财,暗壬为官,生甲为印, + 若通火气有寄托者,大贵,有全美之名;不通,名利乖劣。 + + 天元丁日亥时富,平步青云路正长;得意退毛鸡化凤,鹏程万里任翱翔。 + 丁日时临辛亥,天元禄马同乡。官居进士挂朝裳,必是寒门将相。 + 定主妻贤子孝,威仪权柄难量。骤升台省与京堂,固是财官生旺。 + ''', + + '戊日己未':''' 六戊日生时己未,羊刃偏官不怕冲;但是为人多性狠,平生衣禄亦无凶。 戊日己未时,羊刃偏官,戊以己为羊刃,甲为偏官,时上明暗二己为刃,甲木未中合局,若见刑冲破害,刃煞有制,主贵。 通月旺者平常衣禄,二十年,父母俱失;若不通月气,得寅申者贵。 @@ -338,6 +482,175 @@ 重谢花开结果,双亲雁行夭孤。自为自立自图谋,赖有贵人扶助。 ''', + + '庚日丙子':''' + 六庚日生时丙子,身鬼俱衰退神强;有托荣华无托贱,鬼逢生旺寿难长。 + 庚日丙子时,身鬼俱衰弱。庚以癸为伤,丙为鬼。子上庚死、丙火无气、癸水健旺。 + 若身有倚托,吉;无倚托,又行身衰鬼旺运,飘风夭贱。通火气月,要行西运,贵。身弱不然。 + + 庚子日丙子时,贵。年月再子,并冲,午中丁为官,己为印,人飞天禄马格;柱无财官填实,主贵; + 为僧道,一尘不染,万法皆成;为常人,有名有利,刑伤妻子。一说先贫后富。忌己巳月,破刑,贫。癸未月,孤单。巳亥月、刑。 + + 庚寅日丙子时,春生,带财带煞,行金水运,金紫。夏,煞旺,大贵。秋,身旺,须行南运,贵。冬,身鬼俱弱,平常。 + 纯午年月,位至公卿。壬子,食前煞后随;一阳生后,丙火有气,贵极人臣。忌癸酉月,破败,凶。辛亥月,血光。甲子月,夭。 + + 庚辰日丙子时,月通木火气,行西运,妙。乙巳月,破败,刑。丁酉月,旺中刑,凶。己丑月,破败,凶。 + + 庚午日丙子时,贵。时日相冲,忧伤妻子,运喜西南,通火木月气,风宪三四品。 + 秋生,丙火无气,难为子息。忌己巳月,破祖,凶。己亥月,被劫盗,凶。癸丑月,孤。 + + 庚申日丙子时,申月,生土厚地方,贵。辰未年月,行西运金,方吉。辛巳月,凶刑。辛亥月,孤夭。 + + 庚戌日丙子时,春夏生。西南运;秋月、木火运,俱贵。忌乙巳月,凶、破。乙亥月,官灾多,凶刑。 + 己丑月,破败,凶。戊戌月,恶死。 + + 庚日相逢丙子时,伤官合局不为奇;双亲祖业难成就,燕寝鸾栖别立基。 + 庚日时逢丙子,刑官背禄安身。双亲克陷早难辛,雁侣不能和顺。废学经商发福,田庄后懒先勤。 + 家居财帛晚才成,先暗后明之命。 + ''', + + '庚日丁丑':''' + 六庚日生时丁丑,贵地逢官火太轻;木火运通轩冕客,不通独立只虚名。 + + 庚日丁丑时,金重火轻。庚以丁为官,以己为印,丑上丁火气轻,己土正位。 + 若通木火气月,官印逢生旺,贵;不通,虚名而已。通火土生旺月,富;不通,运遇亦主名声。 + + 庚子日丁丑时,春夏,贵;秋平常;冬孤克。庚寅日丁丑时,魁元。寅卯午未亥月,清秀高命。 + 行午、未运,贵显。通火土年月,贵。 + + 庚辰日丁丑时,丑月,富而寿促。己,近侍,大贵。通火旺土生月,贵;不得,运遇亦富,有名誉。 + + 庚午日丁丑时,通土月气,贵;不,亦富,有名声。 + + 庚申日丁丑时,丑月,金火运,极品。辰巳午未戌月,官印两旺,贵。申、酉,身太旺,须行木火。 + 寅、卯,财太旺,须行金水。亥子,金寒水冷,须行火土运,贵。 + + 庚戌日丁丑时,春财旺;夏官旺;秋平淡;冬无力。 + + 庚丁相合丑时全,好象明蟾耀碧天;不遇刑克真稀奇,财官兴旺更长年。 + 庚日时逢丁丑,正官、财库相随。午未戌月福优余,庚取时逢金柜。金逢火而成器, + 必然荫子封妻。从来歌酒不相离,定主清闲乐意。 + ''', + + '庚日戊寅':''' + 六庚日生时戊寅,火生金绝福高人;月通从革或秋降,却做皇家柱石臣。 + 庚日戊寅时,火生金绝。庚以丙为鬼,戊为倒食。寅上有明戊、合癸化火,庚金气绝。 + 若不通金旺月,无救助者,夭贱贫下。巳月,庚长生,丙健旺,身鬼俱强;运行西方,勇暴,武贵。 + 申酉丑戌月,金火合局,化鬼为官,更得身强运,贵。 + + 庚子日戊寅时,寅午年月,登科显达。纯申,三、四品贵。丑月、金火运,公卿。 + + 庚寅日戊寅时,月通火局或秋生,行身旺运,贵。庚子月,自死。年见辛酉,贫夭残疾。身衰见丙太旺,同论。 + + 庚辰日戊寅时,春夏生,干透丙丁,运行身旺,贵。 + + 庚午日戊寅时,寅午戌月,金衰火旺,当带残疾。纯寅,反主极贵。秋,金旺,多贵,但忌时遇亡劫,克身则凶。 + + 庚申日戊寅时,时日并冲,忧伤妻子。寅卯辰月、火金运。侯伯。春月、西南运,大贵。寅月,贵显不久。一云先刑后吉。 + + 庚戌日戊寅时,贵。戌月,杂气财官印绶,贵。庚辰年,己卯月者,侯伯。 + + 庚日寅时甚可夸,无刑克破显忧华;运来自有高人助,时至如添锦上华。 + 庚日戊寅时秀,编印倒食难收。少年未遇莫心忧,此命或贫或富。 + 时至发财发福,运来顺水行舟。月中金水更相投,无破功名成就。 + ''', + + '庚日己卯':''' + 六庚日生时己卯,胎生元命发因妻;柱中有托逢庚旺,财禄丰盈福寿齐。 + + 庚日己卯时,胎生元命。庚金卯上受胎,见己为生气印绶。庚以乙为财,卯有旺乙,因妻发福。 + 若柱旺丁,生月带禄者,贵;有倚托者,富。通生气财旺者,生财旺运者,俱贵。 + + 庚子日己卯时,子卯相刑,忧伤妻子,子年月,贵。丑未,官至三品。一云破祖失土,大贵。 + + 庚寅日己卯时,亥卯月,财星格,早荣早退。午戌,三合官局,干透金水,行西北运,吉。 + + 庚辰日己卯时,孤。年月通木气及有倚托者,贵。 + + 庚午日己卯时,刑破。申子辰己酉丑,俱行东南运,贵。寅午戌亥卯未,须得西北运为佳。 + + 庚申日己卯时,卯月,财星格,不贵即富。丑巳年月,翰林清贵,官至亚卿。一云少贫,中年有小灾,克妻少子。 + + 庚戌日己卯时,少孤母贱,中年贵。卯酉辰丑月,官至公卿。 + + 天元庚己卯时连,禄见文书富贵全;四柱无刑冲克破,贵人接引上青天。 + 庚日时逢己卯,财官运气亨通。若无刑冲定褒封,有破中年不顺。 + 雁行六亲难靠,自成家计无穷。时来发达显功名,自有高人引用。 + ''', + + '庚日庚辰':''' + 六庚日生时庚辰,金火秋生气象纯;若有魁罡包贵贱,财官喜忌六官分。 + + 庚日庚辰时,金水清白。六庚之中,庚戌庚辰为魁罡,怕见财官刑冲;不见,主为人粗豪暴勇而贵,见则祸患百出。 + 庚子。庚寅、庚午、庚申,喜见财官。生秋月,为人秀丽,不贵则富。若身不化,得甲乙丁透出,生火木分野,亦作财官论。 + 喜月气通运者,吉。 + + 庚子日庚辰时,申月生,井栏叉格。柱并运不见丙丁巳午寅戌字,贵。纯卯年月,位至公侯。 + + 庚寅日庚辰时,龙虎拱门。年月通火土者,贵。纯庚辰,王侯;不然,极凶。若年月遇木火,运再行,极品。 + + 庚辰日庚辰时,魁罡,年月不见财官并戌字,贵;冲破者富。申子年月作井栏叉,行西南运,吉。 + 纯庚辰,庚申或乙酉化金通无火气,凶徒小人。一云刑。 + + 庚午日庚辰时,自刑,金神入火乡。申月,行火木运,官可六品。 + + 庚申日庚辰时,子、申年月入井栏叉。柱、运不逢丙丁巳午字,贵。纯庚申、庚辰,行西北东运,武职极品。 + + 庚戌日庚辰时,魁罡,土厚地方,官高禄重。子月、西南运,贵。寅辰年月,平常。 + + 六庚时辰仔细推,辰中印库钥匙开;四柱若有冲刑字,安然福禄自天来。 + 庚日庚辰时正,地支三合为魁。就中卯戌库门开,无破紫袍金带。 + 巳午丙丁减副,谋为财去财来。妻重子晚命中该,富贵清闲自在。 + ''', + + '庚日庚辰':''' + 六庚日生时庚辰,金火秋生气象纯;若有魁罡包贵贱,财官喜忌六官分。 + + 庚日庚辰时,金水清白。六庚之中,庚戌庚辰为魁罡,怕见财官刑冲;不见,主为人粗豪暴勇而贵,见则祸患百出。 + 庚子。庚寅、庚午、庚申,喜见财官。生秋月,为人秀丽,不贵则富。若身不化,得甲乙丁透出,生火木分野,亦作财官论。 + 喜月气通运者,吉。 + + 庚子日庚辰时,申月生,井栏叉格。柱并运不见丙丁巳午寅戌字,贵。纯卯年月,位至公侯。 + + 庚寅日庚辰时,龙虎拱门。年月通火土者,贵。纯庚辰,王侯;不然,极凶。若年月遇木火,运再行,极品。 + + 庚辰日庚辰时,魁罡,年月不见财官并戌字,贵;冲破者富。申子年月作井栏叉,行西南运,吉。 + 纯庚辰,庚申或乙酉化金通无火气,凶徒小人。一云刑。 + + 庚午日庚辰时,自刑,金神入火乡。申月,行火木运,官可六品。 + + 庚申日庚辰时,子、申年月入井栏叉。柱、运不逢丙丁巳午字,贵。纯庚申、庚辰,行西北东运,武职极品。 + + 庚戌日庚辰时,魁罡,土厚地方,官高禄重。子月、西南运,贵。寅辰年月,平常。 + + 六庚时辰仔细推,辰中印库钥匙开;四柱若有冲刑字,安然福禄自天来。 + 庚日庚辰时正,地支三合为魁。就中卯戌库门开,无破紫袍金带。 + 巳午丙丁减副,谋为财去财来。妻重子晚命中该,富贵清闲自在。 + ''', + + '庚日辛巳':''' + 六庚日生时辛巳,偏官合刃自身生;为人刚毅妻财损,运到金乡贵禄享。 + 庚日辛巳时,阳刃偏官。庚以辛为刃,丙为杀。明辛暗丙,合煞为权。通身旺月,贵;不通,无贵,寿考。 + + 庚子日辛巳时,春富;夏、秋贵;冬贫。辰戌丑未年月,印绶,行西南运,贵。 + + 庚寅日辛巳时,巳酉丑月,身旺,贵。煞旺身弱月,贫。纯申年月,大贵悠久。亥月,东南运、主有权贵。 + + 庚辰日辛巳时,巳酉丑月,身旺,贵。煞旺身弱月,贫。纯申年月,大贵悠久。亥月,东南运、主有权贵。 + + 庚辰日辛巳时,终蹇。年月不见财,高。通木气,行西南运;未申,东北运,俱贵。一云先无后有。 + + 庚午日辛巳时,巳午卯年月,进士风宪。巳申酉戌,行土木运,侯伯。 + + 庚申日辛巳时,刑。巳酉丑月,特达。春夏,木火旺,财官得地,吉。辰戌丑未,印绶,行南运,贵。 + + 庚戌日辛巳时,年月遇财,吉。午未,行东南运,文职操权,恐无好终。寅申、翰林宰辅;若行火运,亦难善终。 + + 庚日相逢时已生,为人福禄依稀平;刑冲破害柱如有,自立自成免祸惊。 + 庚日时临辛巳,败财暗鬼偷寻。财去财来小人侵,祖父家基难荫。 + 外合重行发福,兄弟雁行无音。妻迟子晚喜开心,先苦后荣之命。 + ''', + '辛日戊子':''' 六辛日生时戊子,印绶学堂坐食神;不见丙丁同午破,必是荣华贵显人。 辛日戊子时,六阴朝阳。辛金子上长生学堂。辛以戊为印。癸为食,时上明戊暗癸, From 76089d36db802b2ee20d89bb06ce764f810e79b9 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 8 Apr 2019 15:53:17 +0800 Subject: [PATCH 042/122] finish sizi.py --- bazi/sizi.py | 2460 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 2005 insertions(+), 455 deletions(-) diff --git a/bazi/sizi.py b/bazi/sizi.py index 007c560..10bd8a2 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -6,70 +6,180 @@ summarys = { '甲日甲子': ''' - 甲日甲子时,虽甲败在子,暗有癸水生气印绶,兼有官(海中金)生其印,若己土破印,通月气,贵。 - 否则,秀而不实。 -- 如果有己土化比肩为佳。 + 六甲日生甲子时,败中印绶官生至;月通木气不寻常,反此而言虚名利。 + 甲日甲子时,虽甲败在子(沐浴),暗有癸水生气印绶,兼有官生其印,若己土破印,通月气,贵。否则,秀而不实。 + + 甲子日甲子时,子遥巳格,年月无庚辛申酉,丑绊午冲,离祖自立,贵。 + 若年月俱寅,逢申酉运,大富后退财。子亥卯未年月,行西运,贵。甲辰月亦贵。 + 酉月,只以正官格论,大贵。巳午戌月,平常。午月,甲死子冲,尤不吉。乙卯、乙巳月,主法死。 + + 甲寅日甲子时,拱丑中辛,贵。年月无庚辛申酉丑未,大贵。再甲寅月,孤克,惟憎道可。 + 亥子年月,四品贵。午月,行东北方运,亦贵。如酉丑巳等月,明有官煞,柱但有印,俱贵。 + 卯未,身太旺,未免刑伤。乙巳月,受刑。丁亥月,旺中恶死。 + + 甲辰日甲子时,若水位年月,水泛木浮,主移根换叶;申月,煞星会印,俱贵。 + 子月,行水木运,亦贵。酉月正官,大贵。寅午戌月,俱吉。乙卯月,刑折。癸巳月,水火中死。癸亥月,凶死。 + + 甲午日甲子时,时日并冲,忧伤妻子,月通木气者显贵。纯子午年月,或亥未酉月,俱贵。 + + 甲申日甲子时,甲胎逢印印化煞,贵。鸳鸯重叠,子嗣难为。若行东南方运,文武职居间。 + 亥卯未辰丑申等月,俱贵。乙卯月夭。丁巳月,死不全尸。 + + 甲戌日甲子时,拱亥天门,会同帝阙,甲长生地也,不可以隔角论。年月通申巳酉丑金气,大贵。 + 戊寅年月,主聋哑,或狼虎伤害,见壬则吉。乙卯月,刑死,乙亥月,遭盗死。 + + 甲子相逢甲子连,拟作蟾宫折桂仙;丑绊并冲官鬼破,功名蹭蹬不周全。 + 甲子时逢甲子,就中印绶符同。庚申辛酉若相逢,丑未再兼年月。拱贵暗藏极显,巳午冲破平中。 + 果无刑克与空冲,定主超群出众 ''', '甲日乙丑': ''' - 劫财羊刃不宜有;柱中逢火带辛金,制伏和平贵亦久。 - 乙克丑中的财;乙丑为海中金,若年日时合成火局,制伏金,主德性纯和而贵;无火凶狠;如合水局凶恶损家。 + 六甲日生时乙丑,劫财羊刃不宜有; 柱中逢火带辛金,制伏和平贵亦久。 + 甲日乙丑时,辛金为官,己土为财,丑中暗己,被明乙劫 夺,乙丑金神,若年日时合成火局,得制伏,主德性纯和而贵;无火凶狠;如合水局凶恶损家。 + + 劫财羊刃忌时垣,宫内财官锁闭门; 辰未相逢为大吉,如无随意度晨昏。 + 甲日时逢乙丑,库中金玉收藏。贵人天乙劫财伤,皎月云遮光荡。 + 火局南方运贵,金神制伏相当。木枯水盛且平常,背祖离乡晚旺. + 甲子日乙丑时,连珠得合妻贤子贵。春月身旺,财帛破散。夏月甲衰,金神有制,贵。秋生,近侍之贵。丑月最吉,亥、子多凶。 - 贵人天乙被乙劫财伤害。火局南方运贵,金神制伏相当。木枯水盛且平常,背祖离乡晚旺。 + 甲寅日乙丑时,春贫,秋贵,冬富,夏火制金神,吉。 + + 甲辰日乙丑时,主富厚有财,通火气年月,贵。 + 甲午日乙丑时,金神入火局,身弱贫夭。寅戌会火,是一木叠逢火位,不吉。若单寅单戌,或申酉亥月,四五品贵。 + 甲申日乙丑时,带疾平常。子月生,南方运,贵。秋生化煞,天干透印绶,尤贵。 + 甲戌日乙丑时,田连阡陌,贯朽粟陈,但未免先刑。寅年月,父子俱显。子月,西方运,金紫。 ''', '甲日丙寅': ''' - 甲木寅上健旺,丙为食神, 且通火气, 寿星在位 - 通火木月气者贵,忌见官星及申冲禄。 - 甲丙相邀入虎乡,福星坐禄显文章;运逢四柱无伤害,早晚陛迁至宪堂。 - 若逢辰戌,两三妻,禄主朝元富贵。丁午庚申减福,无官惹绊为奇。 - 生来贵显有人提,此命先难后易。 + 六甲日生时丙寅,时居日禄坐食神; 旺壬不见无刑破,福寿康宁富贵人。 + 甲日丙寅时,甲木寅上健旺,丙为食神,寿星得地,柱无 壬夺癸克,通火木月气者贵,忌见官星及申冲禄。 + + 甲丙相邀入虎乡,福星坐禄显文章; 运逢四柱无伤害,早晚陛迁至宪堂。 + 甲日寅时遇丙,学文福禄班齐。若逢辰戌,两三妻,禄主朝元富贵。 丁午庚申减福,无官惹绊为奇。生来贵显有人提,此命先难后易。 + + 甲子日丙寅时,日禄居时,青云得路,年月无庚辛金,贵;通木火气极贵。午月行东北方运,五六品贵。 + 申月,归禄逢 煞,主大权贵;水局平常。若年月与日时同,大贵。 + + 甲寅日丙寅时,年月无巳酉辛丑字,是归禄格,位至一二品。纯木火带土,富贵双全,六卿之职。 + 丙子及亥未,卯月, 四五品贵;行西南方运,最吉。亦有酉、丑月贵者,看干透及年何如。 + + 甲辰日丙寅时,龙虎拱门,又龙吟虎啸,主贵,或一生近贵,财源或得或失,名利既济未济。未、寅年月,官至六卿; + 戌月风宪;酉月三品;子、亥、丑月四五品,行西方运,大贵;卯、巳年月平常。 + + 甲午日丙寅时,身居绝地,主平。若通水月,木得滋养,吉;火月寿夭,天干比助无妨。 + + 甲申日丙寅时,时日并冲,忧伤妻子。若年月日同,大贵;巳、亥二三品;辰、子年月,会水以煞化印,吉;未月财库, 亦吉。 + + 甲戌日丙寅时,年月有土则富;有金反复。如有金,须生亥子印月方贵,余月则否。 ''', '甲日丁卯': ''' - 伤官羊刃真当恼;纵然月气有扶持,未免为人性不好。 - 乙木克己财,为人凶狠。若柱透辛,伤官见官,刑害百端,运气凶险,不得善终; - 柱有七煞合刃,行财官印绶,大贵。 - 甲逢丁火化为灰,父母兄弟难倚。祖业田财聚散,妻儿总有刑亏。运行官煞始为奇,性格或嗔或喜。 + 六甲日生时丁卯,伤官羊刃真当恼; 纵然月气有扶持,未免为人性不好。 + 甲日丁卯时,伤官羊刃,甲用辛为官,丁字伤之,用巳为财,卯中乙木劫之,主为人凶狠。 + 若柱透辛,伤官见官,刑害 百端,运气凶险,不得善终;柱有七煞合刃,行财官印绶,大贵。 + + 甲旬六日逢丁卯,重重叠叠怕冲刑; 运行背禄无官贵,到老穷经不许名。 + 甲日时临丁卯,伤官羊刃相随。甲逢丁火化为灰,父母兄弟难倚。 + 祖业田财聚散,妻儿总有刑亏。运行官煞始为奇,性格或嗔或喜。 + + 甲子日丁卯时,克剥悭吝,作事进退,不免刑伤妻子,或死他乡。生辰戌丑未月,贵。卯月凶,柱有官煞制亦吉。 + + 甲寅日丁卯时,年月木火相停,通明之象,贵。月令坐丑、未贵。乙亥月,文章冠世,官至三品,干支金水全,官印双显贵。 + + 甲辰日丁卯时,财帛满目,生计盈余,妻贤子孝,高命论之。春生太旺无制,贫贱残疾。丑、酉月贵。 + + 甲午日丁卯时,身坐绝地,凶刑。若生秋冬,寿夭。春夏富贵。甲午月,大贵,运宜东北方。 + + 甲申日丁卯时,主武职,风宪权贵。酉月,火木运,中贵。寅、午年月大贵。 + + 甲戌日丁卯时,逢亥月,有才学,贵显。羊刃最坏,造化须有制合方吉;身弱无凶,若年月纯煞,甲木秋生,主夭折。 ''', - '甲日戊辰': ''' - 天财坐库会滋身;富商巨贾田园盛,月带辛金名利成。时上偏财,遇龙守库。主为商贾发财,田园广盛。 - 八月带禄,财官俱有,富贵双全。忌比肩、羊刃夺财。 - 时上偏财不用多,干枝内外细搜罗;运通财旺官生至,运拙身衰恐受磨。甲日戊辰时遇,柱中要戌相扶。 - 辛庚透干贵显,壬癸滋助不枯。只怕比劫弟兄多,岁运逢之有祸。 + '甲日戊辰': ''' + 六甲日生时戊辰,天财坐库会滋身; 富商巨贾田园盛,月带辛金名利成。 + 甲日戊辰时,天财坐库,时上偏财,遇龙守库,主为商贾发财,田园广盛。八月带禄,财官俱有,富贵双全。忌比肩、羊刃夺财。 + + 时上偏财不用多,干枝内外细搜罗; 运通财旺官生至,运拙身衰恐受磨。 + 甲日戊辰时遇,柱中要戌相扶。财官运气展良图,喜遇钱龙守库。 + 辛庚透干贵显,壬癸滋助不枯。只怕比劫弟兄多,岁运逢之有祸。 + + 甲子日戊辰时,主移根换叶,改姓易宗,妻贤子孝,作高 命论。未月,行北方运,贵。酉月,北方运,大贵。 + + 甲寅日戊辰时,龙吟虎啸格,贵。纯辰,中贵。纯寅康寿。 亥卯未三合,财旺身强,大贵。酉丑申年月亦吉。 + + 甲辰日戊辰时,刑冲发财,妻重子晚,双亲有克。酉月三四品贵。丑月亦贵。地支纯辰,大贵。 + + 甲午日戊辰时,财多成败,早岁灰心。亥子丑卯午未年月大贵。酉月亦贵。 + + 甲申日戊辰时,主孤,僧道清高。丑月富贵。寅月尤贵。 + 甲戌日戊辰时,大富,年月扶合亦贵。寅亥年月,三四品贵。但时日并冲克,早年身孤,中年发福。 ''', - '甲日己巳': ''' - 病中财物实难任;月通火气方为贵,若是身衰亦不禁。 - 食旺身衰,甲木巳上病,虽有暗戊为财,丙为食,不通月气,难任其福。 - 甲己为平头煞,生逢春月,身旺财衰,主骨肉参商,平生作事,弄巧成拙。 - 己巳金神有火制伏,巳酉丑合局,行南方运,名重禄高。柱不见火,残害化气,主凶恶暴亡。 + '甲日己巳': ''' + 六甲日生时己巳,病中财物实难任; 月通火气方为贵,若是身衰亦不禁。 + 甲日己巳时,食旺身衰,甲木巳上病,虽有暗戊为财,丙 为食,不通月气,难任其福。 + 甲己为平头煞,生逢春月,身旺 财衰,主骨肉参商,平生作事,弄巧成拙。 + 己巳金神有火制伏, 巳酉丑合局,行南方运,名重禄高。柱不见火,残害化气,主凶恶暴亡。 + + 甲己中央作土神,时逢辰已脱埃尘; 局中岁运趋炎火,显远功名富贵人。 + 甲日时逢己巳,火临土厚无光。旱苗得雨叶枝强,火局金神旺相。 进士有名无实,常人改祖番庄。为人性格不寻常,运至晚年气象。 + + 甲子日己巳时,先贫后富,祖业轻微,妻勤子拗。生寅未巳丑年月,虽贵防疾。申子辰戌,大贵。 + + 甲寅日己巳时,时日相刑,忧伤妻子。生火年月,有明断之才,掌兵权之职。戊子年月,承袭祖荫,主富。 - 甲己中央作土神,时逢辰已脱埃尘;局中岁运趋炎火,显远功名富贵人。 - 甲日时逢己巳,火临土厚无光。旱苗得雨叶枝强,火局金神旺相。 - 进士有名无实,常人改祖番庄。为人性格不寻常,运至晚年气象。 + 甲辰日己巳时,丰姿敦厚,一生平安,财帛有成。巳酉丑年月,行火金运,贵。 + + 甲午月己巳时,金神入火乡,大贵。酉月,行火木运,武职有权。 + + 甲申日己巳时,敦厚聪明,善于决断,身孤清贵,不免破刑。 + + 甲戌日己巳时,财神贵格,名利两全。子戌年月,五品以上贵。 ''', - '甲日庚午': ''' - 死地逢鬼,甲木死于午,午头见庚为鬼,不通月气,无救助者,带疾寿促。 - 月逢丙寅,身旺庚绝则吉,亦主有始无终。若通木气,主方面,通水气,行东方运,止郎官。 + '甲日庚午': ''' + 六甲日生时庚午,死处又遭鬼当头; 丁丙不逢生再弱,忙忙贫苦度春秋。 + 甲日庚午时,死地逢鬼,甲木死于午,午头见庚为鬼,不通月气,无救助者,带疾寿促。 + 月逢丙寅,身旺庚绝则吉,亦主有始无终。若通木气,主方面,通水气,行东方运,止郎官。 + + 午时庚申是偏官,制伏相宜不等闲; 身弱煞强无食见,平生谋望主艰难。 + 甲日时逢庚午,柱中喜见寅申。身强煞浅转精神,父母雁 行不顺。 妻子早年刑害,晚年出众超群。平生反复好翻腾,先破后成之命。 + + 甲子日庚午时,时日相冲,忧伤妻子,平常。若子午年月及寅戌月生,行西北方运,金紫风宪。 + + 甲寅日庚午时,春月有寿。夏月伤官伤尽,财源进退。申有权,酉反复。冬月伤妻子。子未年月煞助印生,四品。 + + 甲辰日庚午时,田园乐赏。寅月,行金运,风宪。 + + 甲午日庚午时,破祖业发财,禄因财不得善终。寅午戌年月,贵。 - 午时庚申是偏官,制伏相宜不等闲;身弱煞强无食见,平生谋望主艰难。 - 甲日时逢庚午,柱中喜见寅申。身强煞浅转精神,父母雁行不顺。 - 妻子早年刑害,晚年出众超群。平生反复好翻腾,先破后成之命。 + 甲申日庚午时,子辰年月会印。亥卯年月身旺,俱贵。寅戌会伤制煞,甲得寄托,亦贵,运喜金水。 + + 甲戌日庚午时,生辰戌月,敦厚,不贵则富。丑月行火土运,金紫风宪,寅月清贵。 ''', - '甲日辛未': ''' - 甲日辛未时,时贵逢官,甲见辛为官,未有天乙贵;己为财,未中己土得气,若通木气月, - 有寄托者富;通土气月者,富贵双全。 + '甲日辛未': ''' + 六甲日生辛未时,官星坐贵最为奇; 月逢金气须荣贵,财禄相停敢断之。 + 甲日辛未时,时贵逢官,甲见辛为官,未有天乙贵;己为财,未中己土得气,若通木气月,有寄托者富;通土气月者, 富贵双全。 + + 甲逢辛未是财官,平步青云路不难; 不比退毛鸡化凤,得时飞上彩云路。 + 甲日时逢辛未,财官守库相扶。贵人财禄是良图,初苦未终荣富。君子迁官进职,常人丰厚充腴。刑冲破害柱中无,定得青云之路。 + + 甲子日辛未时,辰戌丑未及己酉月,土金地方,文贵显达。 + + 甲寅日辛未时,寅申月贵。纯酉丑年月,大贵。 - 甲逢辛未是财官,平步青云路不难;不比退毛鸡化凤,得时飞上彩云路。 - 甲日时逢辛未,财官守库相扶。贵人财禄是良图,初苦未终荣富。君子迁官进职,常人丰厚充腴。 - 刑冲破害柱中无,定得青云之路。 + 甲辰日辛未时,辰戌丑未月富。巳酉丑子年月贵。 + + 甲午日辛未时,春吉,夏凶,秋身弱难任官禄,冬贵。 + + 甲申日辛未时,春吉,夏辛苦,秋显达,冬根基别立贵。子丑月大贵。 + + 甲戌日辛未时,先刑后贵。寅卯酉丑年月贵,子申年月,位至贵显。 ''', - '甲日壬申': ''' + '甲日壬申': ''' 六甲生时遇壬申,明伤暗鬼坐其身;柱无丙戊秋冬旺,坎坷飘流无定人。 甲日壬申时,甲木绝在申,申土壬水长生,庚金建禄,明袅暗鬼,甲旺化鬼为官,犹不免凶暴。 若生秋庚旺,生冬壬旺,柱无丙戊制伏,漂流之象。若巳午月,大吉。强横透庚,作煞论,运行北方,贵。 @@ -77,30 +187,66 @@ 甲日时逢喜遇申,偏官偏印怕刑冲;欲求名利终难定,有救须教运气通。 甲日时逢壬申,倒食暗鬼相侵。生逢身旺主昌荣,身弱性情不定。 雁侣六亲少力,谋为自立自成。运行吉地显声名,运弱平常之命。 + + 甲子日壬申时,申子辰亥月,水泛木漂,移根换叶,玉堂金马之贵。水土运,凶。 + + 甲寅日壬申时,旺中有失。辰戌丑未月勾陈得位;寅、午、戌月,偏官有制;秋月,行东南运,俱贵。 + + 甲辰日壬申时,寅辰年月,文章显贵。透丙戊尤美。 + + 甲午日壬申时,申子辰月,改姓更宗,敦厚之命。午月贵。 + + 甲申日壬申时,寅月,身煞两停;卯月,以刃合煞,俱贵。子辰年月,以煞化印;巳午火月,七煞有制,俱吉。最怕煞旺 身弱,大凶。 + + 甲戌日壬申时,辰戌丑未月,衣锦有成;亥月学堂;寅月建禄;俱贵。午酉月寿促,不然贫贱。 ''', - '甲日癸酉': ''' - 暗官明印未希奇;柱中有火无刑破,元命胎生贵可知。 + '甲日癸酉': ''' + 六甲日生时癸酉,暗官明印未希奇;柱中有火无刑破,元命胎生贵可知。 甲日癸酉时,胎生元命,甲木酉上受胎,为甲生气,明癸为印,暗辛为官,有己土破印,不贵。 酉为金神,若柱有寅戌,通火气者,德性纯厚而贵。无火见水,凶暴残疾。 + 甲日交通癸酉时,金神火局两相宜;运行南地无刑破,富贵荣华事事奇。 甲日时逢癸酉,为人富贵双全。三奇发福屡升迁,上下相和贵显。 君子寒门将相,常人置立田园。无伤无破是英贤,此命定居台宪。 + + 甲子日癸酉时,春生木旺;酉月官纯,贵。若混之以煞, 或煞多,柱中全无火气,凶。 + + 甲寅日癸酉时,春生寿,夏反复。秋性不定,多凶。冬平常。丑未月贵。 + + 甲辰日癸酉时,子戌年月,有财有官,贵。 + + 甲午日癸酉时,主孤。生寅午戌月,行东北方郎官。 + + 甲申日癸酉时,平常。通火气月,行南运,富贵。申酉年月,多夭。有水化金毒,只作官印论,不作金神亦吉,但主退早。 + + 甲戌日癸酉时,子戌年月,文章显贵。子午月,不贵即富。 ''', - '甲日甲戌': ''' - 六甲日生时甲戌,木遭火局气不舒;好善福平常,父母并伤。 - -- 甲木在 山头火。 - 甲日甲戌时,甲用丙为食,辛为官,戌上食神入火局,辛有余气,身被火焚,为人好善,平常衣禄。 - -- 甲木克戌中戊,为克父 - 甲以戊为父,癸为母,戌上旺甲伤戊,内有暗戊伤癸,戊癸受克,难为二亲。 + '甲日甲戌': ''' + 六甲日生时甲戌,木遭火局气不舒;为了好善福平常,父母并伤诚可 。 + 甲日甲戌时,甲用丙为食,辛为官,戌上食神入火局,辛有余气,身被火焚,为人好善,平常衣禄。 + 甲以戊为父,癸为母,戌上旺甲伤戊,内有暗戊伤癸,戊癸受克,难为二亲。 时逢甲戌比肩逢,库有天禄火气冲;鸡鸭同鸣皆聚散,到头心志不相同。 甲日时通甲戌,比肩带禄相逢。天孤仓库隐其中,酉丑辰支取用。 无钥冲刑开破,立身多学少成。柱金木火旺火生,先暗后明之命。 + + 甲子日甲戌时,春寿,夏暴,秋贵,冬,移根换叶,柱见纯亥夹角,虽贵终凶。辰戌丑未,杂气财官,亦吉。 + + 甲寅日甲戌时,比肩争禄,木气遭焚,四十后渐不如前。甲丙申子年月,大贵。纯戌风宪,午月,行水火运,七八品贵。 + + 甲辰日甲戌时,财源稳厚,多凶。春月金火运,官至六品。 + + 甲午日甲戌时,春生,贵人扶持。夏,背禄逐马。冬,印缓,吉。纯寅年月,近侍贵。 + + 甲申日甲戌时,夹酉官贵,但身孤,发亦不久。春生,木土运,贵。 + + 甲戌日甲戌时,背禄逐马,平常。秋生,官煞有气,贵。 辰戌丑未月,吉。卯月凶。 + 若丙寅、甲午年月,三甲食二丙,丙夏得时,居寅长生,甲就食见禄,主富贵。 ''', - '甲日乙亥': ''' + '甲日乙亥': ''' 六甲日生时乙亥,羊刃反伤为祸害;财官辛戊不相逢,只恐功名不亨泰。 甲日乙亥时,甲木亥上长生有旺,乙为刃,制克学堂,壬为倒食,亥上建禄。 甲以金为官,戊己为财,辛金沐浴,戊己衰绝,不能作福。 @@ -108,18 +254,43 @@ 甲日时逢乙亥强,有官有印不寻常;时来自有高人荐,运至财乡大显扬。 甲日时逢乙亥,就中壬水相生。时临帝座紫微宫,子嗣螟蛉得用。父母雁行少力,花开结子。 + + 甲子日乙亥时,成趋乾格,贵。如生申月,煞旺合刃,权贵。酉月正官,柱稍得土助,大贵。辰巳丑未戌月俱吉。年月 纯卯,刃旺则凶。 + + 甲寅日乙亥时,辰戌丑未月,富。申酉月,贵,冬,平常。若寅亥月,高贵。 + + 甲辰日乙亥时,酉月正官,最贵。辰戌丑未及寅亥年月,俱吉。 + + 甲午日乙亥时,卯月羊刃,刑骨肉,身弱不得善终。春生,贵为宰辅。申子戌午年月,行水火运,官至六卿。 + + 甲申日乙亥时,亥月,学问有成,贵为风宪。申酉月,先贫后富。子月,行水火运,金紫。辰戌丑未,杂气财官;寅月建禄,俱吉。 + + 甲戌日乙亥时,春冬生,富,土厚地方显贵。夏,劳力不聚财。秋平常。 ''', - '乙日丙子': ''' + '乙日丙子': ''' 六乙日生时丙子,伤官坐贵福不全;柱中不见官刑破,方是平生贵禄缘。 乙日丙子时,六乙鼠贵。乙用庚为官,死于子;见丙为伤,丙暗邀辛化煞为权,柱中不见庚辛, 无丑绊午冲,方成格,贵。若有上忌及不通月气,无救助者,暴恶贫下,有疾寿促。 六乙贵格丙子时,如无冲破始为奇;不遇庚申巳酉丑,定乘轩冕拜丹墀。 - 乙日时临丙子,伤官伤尽荣昌。亥卯未月不寻常,运至身健旺相。辛庚不见发福,午冲丑绊平常。如逢刑克空一场。 - 此命或衰或旺。 - ''', - '乙日丁丑': ''' + 乙日时临丙子,伤官伤尽荣昌。亥卯未月不寻常,运至身健旺相。辛庚不见发福,午冲丑绊平常。如逢刑克空一场。此命或衰或旺。 + + 乙丑日丙子时,身弱平常,无午穿冲,贤德温厚。申酉年月,风宪。寅子,贵显。忌丙寅、己未、甲戌、己丑等月,主凶刑恶死。 + + 乙卯日丙子时,高。辰戌丑未亥年月,不见官星,贵。 + + 乙巳日丙子时,吉。若巳午年月,寿促,不然,身孤劳碌, 纯土,财旺生官,行西运;子辰,行水火运,俱二三品贵。 + 申月正官,酉月偏官,卯月建禄,俱吉。忌甲寅月,刑夭。乙酉月下贱。 + + 乙未日丙子时,平。若子亥年月,大贵,岁运同。忌巳未月,刑伤,丙申月,身不完死;己丑月,破祖恶死。 + + 乙酉日丙子时,贵,身孤,反复起倒,月通水气,不见辛午亦贵。忌戊寅月,大凶;丁巳月,破祖贫;己酉月,金刃死。 + + 乙亥日丙子时,化青赤,主福。生庚辰年月,富贵。纯亥,成败。丑月,行南运郎官。巳午西运,极贫。忌壬辰月,刑;乙酉月,破祖高贵,中恶死。 + ''', + + '乙日丁丑': ''' 六乙日生时丁丑,食神相助遇财官;月通金气化为福,不是寻常下贱看。 乙日丁丑时,食会财官,丁为食,庚为官,己为财,丑中有辛金合局,己土得位,如有倚托者,贵。 通金气月化者,富厚尊重;不通月气,平常。 @@ -127,8 +298,22 @@ 仓库时开乙见丁,食神坐库禄财亲。无匙不作朝中客,也是清闲有福人。 乙日时逢丁丑,寿星发达无疑,身居磨蝎莫嫌迟,库内钱财积聚。 年时月合发达,空刑妻子难为。双亲雁侣有盈亏,运至牢藏金柜。 - ''', - '乙日戊寅': ''' + + 乙丑日丁丑时,秋生有权;主带疾;夏吉,冬平;春旺,贵寿。 + + 乙卯日丁丑时,亥月,身旺见辛偏官,柱有丁制,风宪武职。 + + 乙巳日丁丑时生,亥卯未寅月,贵。通金气月有倚托者,福重。 + + 乙未日丁丑时,辰戌丑未月,富。春寿长,秋名利,夏贫下,冬平常,申年月,武职三品。 + + 乙酉日丁丑时,若通木气有倚托者,显贵。申丑年月亦好, 寅亥尤佳。 + + 乙亥日丁丑时,亥月,性急有操持,妻贤子孝,官至六七 品。午月长生,年月透官印,大贵。 + + ''', + + '乙日戊寅': ''' 六乙日生时戊寅,败财背禄实伤身;有心无力多成败,止是平常衣禄人。 六乙日戊寅时,败财背禄,乙用庚为官,寅中有丙,伤官背禄: 用戊己为财,寅中甲旺财败,为人作事成败平常。通土气者吉。 @@ -136,8 +321,21 @@ 乙日寅时仔细推,为人招是又招非;运衰更遇空刑克,劳力劳心无定期。 乙日戊寅时遇,就是暗损伤财。伤官背禄柱中排,富贵妻儿刑害。 运旺财官发福,运行比煞兴灾。六亲骨肉少和谐,自立自成自在。 + + 乙丑日戊寅时高,生子年戌月者,富贵。辰戌,行木火运,威权。 + + 乙卯日戊寅时,刑中发福。秋生贵。酉年遇辰戌丑未月,富。卯月建禄,午月印生,透官印,俱吉。 + + 乙巳日戊寅时,孤克平常。若年月申庚,正官;丑辛,七煞,俱贵。辰月,北方运,吉。 + + 乙未日戊寅时,春生有寿。秋贵显。夏平常,冬反复。辰戌且未,俱吉。岁运同。 + + 乙酉日戊寅时,春生富,夏平、秋贵、寿促,冬吉。 + + 乙亥日戊寅时,春吉,夏劳力,秋冬贵。子丑年月,贵至三品,有起有落,寿永。 ''', - '乙日己卯': ''' + + '乙日己卯': ''' 六乙日生逢己卯,时居日禄财临好;旺通木气贵无疑,金重亦可恼。 乙日己卯时,禄入庙堂,乙木逢卯建禄,为人秀丽,通木火者贵。见庚辛为伤禄破命,患目疾。 若生巳酉丑月,平常衣禄。辰戌未,吉。申月亦吉。 @@ -145,54 +343,105 @@ 日禄居时格不同,食神则马要相逢;伤官印运皆为吉,官不逢兮禄自丰。 乙日时临己卯,偏财时禄归迎。辛金酉字不相刑,虎榜定标名姓。 父母六亲难靠,雁行各自飞腾,文章光耀有才能,无破无冲贵命。 + + 乙丑日己卯时高,中年大福。春生,身太旺,孤。夏贫。秋有疾。冬温厚。柱不见辛金,吉。若辰戌丑未月,金紫贵。 + + 乙卯日己卯时高,春生旺,为僧道,富足。夏平常,不见辛金,吉。秋带疾。冬温厚。卯丑年月,显达高寿。 + + 乙巳日己卯时,春孤贫,夏平,秋带疾,冬贵。午辰年月、地支一路相连,尤吉。 + + 乙未日己卯时,年月不见庚辛金,贵。秋生,看地厚薄,如生壬戌年月,三四品贵。 + + 乙酉日己卯时秀,初年破祖,中主发财,未年孤刑。 + + 乙亥日己卯时,生寅巳月,不见庚辛,日禄归时格,显达清贵。纯卯年月,高僧羽士。戌,特达聪明,有财禄。 ''', - '乙日庚辰': ''' - 六乙日生时庚辰,水白金清化象真; - 壬从辛酉通官贵,却防目疾减精神。 - 乙日庚辰时,妻贤子贵。乙合庚化金,若通申巳酉丑月, - 为人秀丽,主贵,却防目疾。如不见化,以壬为印,庚为官, - 辰土癸水合局,乙木有托,行东南运,贵显平和。 - - 乙庚相会贵无疑,阴木阳金正合时; - 运吉身强无冲破,升迁自有贵人提。 - 乙日庚辰时正,天官守库乾元,青年虎榜姓名传,禀性温良恭俭。士庶妻贤子贵。 - 财人禄位升迁。南离戊癸火相连。富贵之中当险。 + '乙日庚辰': ''' + 六乙日生时庚辰,水白金清化象真;壬从辛酉通官贵,却防目疾减精神。 + 乙日庚辰时,妻贤子贵。乙合庚化金,若通申巳酉丑月,为人秀丽,主贵,却防目疾。 + 如不见化,以壬为印,庚为官,辰土癸水合局,乙木有托,行东南运,贵显平和。 + + 乙庚相会贵无疑,阴木阳金正合时;运吉身强无冲破,升迁自有贵人提。 + 乙日庚辰时正,天官守库乾元,青年虎榜姓名传,禀性温良恭俭。士庶妻贤子贵。财人禄位升迁。南离戊癸火相连。富贵之中当险。 + + 乙丑日庚辰时,破祖克父,身弱忌疾,通月气者,贵。子申年月,天干透甲戊,合三奇,大贵。 + + 乙卯日庚辰时,富贵。通火土年月,大贵。 + + 乙巳日庚辰时,作事成败,僧道富贵带疾。常人刑克妻子。申子辰卯巳年月,贵。 + + 乙未日庚辰时,亥卯身,身旺;巳申,官旺,天干透煞印,皆贵。丑酉纯煞,柱有火制,亦吉。戌丑年月,四库全,大贵。 + + 乙酉日庚辰时,亥子年月,干透戊癸,贵。寅巳午月,官煞有制,吉。纯酉化金,主厚福。 + + 乙亥日庚辰时,不贵则富。若年月癸戊一化,申卯两旺, 巳丑酉会金,行木土运,位至金紫。 ''', - '乙日辛巳': ''' + '乙日辛巳': ''' 六乙日生时辛巳,金木交争主不仁;有化月中身旺贵,不通无化恐伤人。 - 乙日辛巳时,暗金交争,是非日有,若通身旺月,有倚托,化鬼为官,行身旺运,贵。 - 通木气月,行金旺运,大贵。通金气月,行身旺运,亦贵。 + 乙日辛巳时,暗金交争,是非日有,若通身旺月,有倚托,化鬼为官,行身旺运,贵。通木气月,行金旺运,大贵。通金气月,行身旺运,亦贵。 + + 乙巳相伤逢金木,求名求利常反复;六亲骨肉有如无,印绶运乡能发福。 + 乙日时逢辛巳,柱中鬼旺身衰。六亲难靠不和谐,谋望有成有败。几度遇凶则吉,信知苦尽甘来。运行身旺印绶怀,富贵时人喝采。 - 乙巳相伤逢金木,求名求利常反复; - 六亲骨肉有如无,印绶运乡能发福。 - 乙日时逢辛巳,柱中鬼旺身衰。六亲难靠不和谐,谋望有成有败。 - 几度遇凶则吉,信知苦尽甘来。运行身旺印绶怀,富贵时人喝采。 + 乙丑日庚辰时,破祖克父,身弱忌疾,通月气者,贵。子申年月,天干透甲戊,合三奇,大贵。 + + 乙卯日庚辰时,富贵。通火土年月,大贵。 + + 乙巳日庚辰时,作事成败,僧道富贵带疾。常人刑克妻子。 申子辰卯巳年月,贵。 + + 乙未日庚辰时,亥卯身,身旺;巳申,官旺,天干透煞印, 皆贵。丑酉纯煞,柱有火制,亦吉。戌丑年月,四库全,大贵。 + + 乙酉日庚辰时,亥子年月,干透戊癸,贵。寅巳午月,官煞有制,吉。纯酉化金,主厚福。 + + 乙亥日庚辰时,不贵则富。若年月癸戊一化,申卯两旺, 巳丑酉会金,行木土运,位至金紫。 ''', - '乙日壬午': ''' - 六乙日生时壬午,印绶生身财食聚; - 月通水木禄丰盈,不通月气平常数。 - 乙日壬午时,印绶学堂,乙木长生在午,见壬为印,用丁为食,己为财,午上丁己建旺, - 若通水月气者,文章秀丽;不通月气,平常衣禄,通运亦好。 + '乙日壬午': ''' + 六乙日生时壬午,印绶生身财食聚;月通水木禄丰盈,不通月气平常数。 + 乙日壬午时,印绶学堂,乙木长生在午,见壬为印,用丁为食,己为财,午上丁己建旺,若通水月气者,文章秀丽;不通月气,平常衣禄,通运亦好。 乙日生逢壬午时,月通水木贵人钦;运行官旺无冲破,家业丰隆事称心。 - 乙日时逢壬午,食神印绶同宫。无冲无破不相刑,信是声名响应。 - 词馆清秀高士,文章出众超群,贵人喜见小人憎,中末峥嵘之命。 + 乙日时逢壬午,食神印绶同宫。无冲无破不相刑,信是声名响应。词馆清秀高士,文章出众超群,贵人喜见小人憎,中末峥嵘之命。 + + 乙丑日壬午时,春夏多富贵。秋冬官印,或纯煞透干,尤吉。 + + 乙卯日壬午时高,丑月,入杂气财官;申酉月,身煞两停, 俱主显贵。纯午酉年月,三四品;辰戌,平常。 + + 乙巳日壬午时吉,春夏富贵。秋冬平常。 + + 乙未日壬午时,寅卯身旺,亥子印旺,丑月财官印三奇, 俱主贵显。申月正官,尤吉,若庚午、丁亥年月,食神同窠, 就食见禄,富贵。 + + 乙酉日壬午时,春吉。秋夏平常。柱纯乙酉,透庚合化, 或见印助,大贵。 + + 乙亥日壬午时,春身旺,夏福厚,秋反复,冬吉庆。 ''', - '乙日癸未': ''' + '乙日癸未': ''' 六乙日生时癸未,入墓之中遇倒伤;马劣财微食见克,一生衣禄主平常。 - 倒食食神,己土偏财,破癸癸倒未中丁火之食,平常衣禄。 - 通土气月则吉。 + 倒食食神,己土偏财,破癸癸倒未中丁火之食,平常衣禄。通土气月则吉。 乙日相逢时癸未,算来离祖不成家;有刑克害多成败,运吉如添锦上花。 乙日相逢癸未,生逢木墓夭孤。雁行兄弟有如无,心性不常喜怒。 自立自成事业,六亲骨肉亲疏,贵人得合两相扶,此命先贫后富。 - ''', - '乙日甲申': ''' + 乙丑日癸未时,凶刑孤独,年月通土气,吉。 + + 乙卯日癸未时,改祖离亲,就妻为家。午未年月,贵。春尤贵。 + + 乙巳日癸未时,不贵则富,先难后易。纯午、三品贵。辰 戌丑月,俱吉。 + + 乙未日癸未时,春,身旺刑伤。秋,官煞旺,科名有分。 冬安稳。夏平常。 + + 乙酉日癸未时,身坐煞,春,身旺,吉。夏,身弱煞衰, 贫。秋,煞旺,身能从化,贵。冬平。 + 辰戌丑未月,透庚辛, 行金运,贵。一到刃运,退官罢职。 + + 乙亥日癸未时,春木旺,刑伤妻子。申月官旺,贵。酉煞旺,年月有火则吉。午未戌年月,一二品贵。冬生稳厚。 + + ''', + + '乙日甲申': ''' 六乙日生时甲申,官星得印位生成;月中通气无冲破,必定荣华仕路人。 乙日甲申时,官印生身,乙用庚为官,壬为印,申上庚旺 壬生,身有寄托,通金水月运者贵;不通,身弱官重,虽贵不永。 @@ -200,27 +449,60 @@ 乙日相逢时遇甲,长生驿马内相亲;贵人天乙来相助,释却褐衣入紫宸。 乙日申时逢贵,其间高人见喜。小人称美有奇希,克破冲刑减力。 身旺运逢吉地,信知两旺财官。有鞍有马有衣冠,定主门庭改换。 + + 乙丑日甲申时高,纯子辰年月,行东南运,大贵。巳酉丑,贵;中防凶。午未纯,吉。亥卯亦吉。余月平平。 + + 乙卯日甲申时,化贵。月通水气无伤破者,贵,不然,富。 + + 乙巳日甲申时,身强官旺。春,聪明显达,官至四品。夏,身心劳碌。秋冬眼疾。午年月,行财运,贵。 + + 乙未日甲申时,生未酉亥月,聪俊特达,官至二三品。丙丁寅午卯酉年月,伤食制煞,权贵。 + + 乙酉日甲申时,官煞混杂,若柱丁火制煞留官则吉。亥卯未酉年月,武职极品;不久;行东南方运,大贵。 + + 乙亥日甲申时,时落空亡,主少子。秋生,官居六卿。亥卯年未月,俱吉。 ''', - '乙日乙酉': ''' + '乙日乙酉': ''' 六乙日生时乙酉,得逢金局火为奇;用神遇木重重见,鬼绝寿伤反无依。 - 乙日乙酉时,身绝鬼旺,乙以辛为鬼,酉上辛旺乙绝。 - 若通巳酉丑月,化金局者贵。如用神坐木,身旺不化,又见于酉,不夭必贫。 + 乙日乙酉时,身绝鬼旺,乙以辛为鬼,酉上辛旺乙绝。若通巳酉丑月,化金局者贵。如用神坐木,身旺不化,又见于酉,不夭必贫。 日干是乙时临酉,假煞为权身旺奇;身弱遇官徒费力,功名须待运通时。 - 乙日时临乙酉,诞辰乙木无忧。其中权贵任求谋,无破功名定有。 - 妻子早年克害,财源雨散云收。迁宗移祖免忧愁。中末家资成就。 + 乙日时临乙酉,诞辰乙木无忧。其中权贵任求谋,无破功名定有。妻子早年克害,财源雨散云收。迁宗移祖免忧愁。中末家资成就。 + + 乙丑日乙酉时高,生巳酉丑月,合金局,更行西运,大贵。 寅午戌月,贫下。亥卯未月,吉。纯子年月,行南运,一二品贵。 + 寅月火金,七品贵。申月水木,金紫贵。 + + 乙卯日乙酉时,月通金局者贵。未寅年月,官至一二品。 + + 乙巳日乙酉时,春吉。夏,伤官有制,好。秋,木弱金重,夭,不然有疾。冬,福厚亦夭。 + 乙未日乙酉时,拱贵格,无刑破者贵,有申填实则非。亥卯月,行西运,贵。 + 乙酉日乙酉时,旺处自刑,年月火土重,主灾。若通月气, 透出印食,行火木运,大贵。地支纯酉,化成金象,但带印绶, 贵不可言。最怕岁运遇官。 + 乙亥日乙酉时,春生,仁寿格,贵。寅月,行金火运,大贵。 ''', - '乙日丙戌': ''' + '乙日丙戌': ''' 六乙日生时丙戌,鬼败临身有损伤;若不气通身旺月,孤贫劳碌苦难当。 鬼败临身,戌中有辛余气、丙丁库,食神制煞,若柱透庚,伤官见官,为祸百端; 年月有寅午(三会),丙火合局,即一木叠逢火位,主人傲物气高,衣禄平常,残疾,不然寿促。 通身旺月气者,吉。 - 乙日丙戌时火库,藏辛遇丑乃吉昌;若也运逢凶克害,算来此命且如常。 + 枯木相逢局,逢春叶更生; 晚年方得地,花发再重荣。 乙日丙戌时火库,藏辛遇丑乃吉昌;若也运逢凶克害,算来此命且如常。 乙日相逢丙戌,伤官库木枝枯。不临辛丑钥匙无。难倚六亲父母,雁侣分飞不睦,于人心悲成疏。 - 要知发福改门闾,此命后甜先苦 + 要知发福改门闾,此命后甜先苦. + + 乙丑日丙戌时,春身旺,吉。夏,伤官太重。秋,劳力辛苦。冬亥子,印绶带伤官,极贵。戌月,木火运,七品贵。 + 纯戌年月,天干透庚丙者,大贵。寅午合火者夭。 + + 乙卯日丙戌时,寅卯月,运西运,六七品贵。子月印绶; 丑月杂气,刑出财官,俱贵。 + + 乙巳日丙戌时,吉。丑戌未年月,风宪六卿。亥月,行东运,翰院清贵。 + + 乙未日丙戌时,旺处凶。卯午未戌年月,贵显。 + + 乙酉日丙戌时,春身旺,冬印旺,大贵。夏巳午,秋酉戌, 俱贵。亦看天干如何?丁未、甲辰,生计辛苦;一生遇贵。丑月刑。戌吉。 + + 乙亥日丙戌时,血疾。亥子卯未寅月,遇贵发福;天干透伤官生财,尤吉。 ''', @@ -233,6 +515,16 @@ 时上生逢亥与丁,食神乙木遇长生;月气相扶为最贵,身衰无倚是常人。 乙日时逢丁亥,食神印绶相扶。长生得意好无伤,荣显清名贵遇。 喜逢丁壬化气,运临冠带迁除。无机妙法实难窥,丙己寅申减贵。 + + 乙丑日丁亥时秀,生壬子申未卯月,干透财印者,才德兼全,职在风宪。年月干支纯金,身衰煞旺,主凶死。 + + 乙卯日丁亥时,巳酉丑月偏官,申月正官,俱贵。亥月,东南运,风宪。未月,三合木局,大贵。 + + 乙未日丁亥时贵,子亥年月,公侯。春生,行西运,郎官。酉孤,贵。年月木火,主发高科。水土金与日干合化有用者, 俱吉。 + + 乙酉日丁亥时,月通金局,行水运,大贵。通木气,发达。土气,称意。 + + 乙亥日丁亥时,有财自刑,寅卯身旺,天干透财者富;辰丑,行金火运,贵。亥子申,官印双清,更辅以财。大贵。 ''', '丙日戊子': ''' @@ -243,89 +535,237 @@ 活计生涯四季隆,丙逢戊子食官同;无伤晚岁皆成就,吉处遭凶险处通。 丙子时逢戊子,官星食福同排。午丁未遇且沉埋,交通中年大快。 父母妻子喜合。胸中隐匿文才。若逢好运一时来,富贵清闲自在。 + + 丙子日戊子时,寅巳卯未月,木能生火,大贵。冬月,丙火无气,贫夭。戌月,行火土运,五六品贵。忌丁巳月,夭; 己酉月,破家失土,身贱。 + + 丙寅日戊子时,生卯丑月,清贵。寅戌,平常。夏月身旺, 柱有水金方吉。子月正官,大贵。忌癸巳月,刑;癸亥月,恶死;己酉月,大败。 + + 丙辰日戊子时,丙辰为日德格,喜见官星。若生戌月,身旺最宜,武贵。寅月,行金水运,中贵。申月三合,合煞有印, 贵。 + 忌己巳月,凶死;己亥月,自刑死;癸丑月,破祖恶死。 + + 丙午日戊子时,丙午为日刃格,要官煞制合。生辰戌丑未月,大富。亥卯未寅年月,大贵,申巳,文贵三品,武贵不永。 + 纯子,为子午双包贵格。忌丁巳月,恶死;丁亥月,自刑恶死;辛丑月,孤独。 + + 丙申日戊子时,巳午年月,行东北运,风宪,子月,行木火运,三品。丑七品,酉亥,虽遇贵反贱。忌癸巳月,中年刑。乙酉月,破败。 + + 丙戌日戊子时,春生,印绶最吉。夏,身太旺,平常。秋,财旺身衰,有寄托则贵。纯酉年月,文进之贵。忌己亥月,死不全尸;癸丑月,贫夭 ''', '丙日己丑': ''' 六丙日生时己丑,官鬼相生禄不成;若见申庚并乙旺,不求财禄过平生。 - 丙日己丑时,伤官背禄,傲物志高。丙用癸为官,丑中有癸余气,被明暗土伤,柱透癸为祸。 - 若见庚辛,伤官生财,却为福庆。 + 丙日己丑时,伤官背禄,傲物志高。丙用癸为官,丑中有癸余气,被明暗土伤,柱透癸为祸。若见庚辛,伤官生财,却为福庆。 丙日财官库里藏,戌辰未字显文章;身衰若也无匙钥,求名求利总平常。 - 丙日时逢己丑,伤官财库暗藏。运交未戌不寻常。破出财官必旺。 - 近贵谋夺劫财,算来虽有害。六亲真假少和谐,直断依时莫怪。 + 丙日时逢己丑,伤官财库暗藏。运交未戌不寻常。破出财官必旺。近贵谋夺劫财,算来虽有害。六亲真假少和谐,直断依时莫怪。 + + 丙子日己丑时,寅亥申辰年月,天干透财印食者贵。 + + 丙寅日己丑时,平常,生乙酉月,正财格,有乙庚健旺者贵。巳丑年月,干透官印者贵。 + + 丙辰日己丑时,申亥年月,化水则吉;不化寿促,戌月冲库,无人不发。寅午身旺,成火上格,大贵。 + + 丙午日己丑时,春月,行火金运,官至极品。夏平,秋富,冬贵,难为妻子,午酉年月,五六品,此月禄生财之验。 + + 丙申日巳丑时,血疾。申月,文学儒官成。卯贵。子辰会官,寅卯会印,俱吉。 + + 丙戌日己丑时高,武刑后发旺。生亥卯月,火金运,大贵。辰未四库全,火土成局,大富。 ''', '丙日庚寅': ''' 六丙日生时庚寅,学堂生气助其身;运中有合通金局,必是荣华富贵人。 - 丙日庚寅时,生气学堂,丙寅上长生,文章秀气;丙以庚辛为财,寅上庚绝丙旺。 - 若通月气金局者财旺,富贵双全,喜西方运;不通局者财薄。 + 丙日庚寅时,生气学堂,丙寅上长生,文章秀气;丙以庚辛为财,寅上庚绝丙旺。若通月气金局者财旺,富贵双全,喜西方运;不通局者财薄。 丙庚相合遇寅时,险难消除福自随;运至寒门名将相,时来平步上云梯。 - 丙日庚寅时准,双亲衰旺离乡。妻儿早害晚荣昌,白虎归山正旺。 - 木有成林松柏,生涯广聚财粮。堆金积玉满高堂,共羡人言上样。 + 丙日庚寅时准,双亲衰旺离乡。妻儿早害晚荣昌,白虎归山正旺。木有成林松柏,生涯广聚财粮。堆金积玉满高堂,共羡人言上样。 + + 丙子日庚寅时,生子月,近贵。癸酉月,行水木运,高贵;火木运,五品以上贵。未申、癸午年月,身居武职,大贵,寿浅。 + + 丙寅日庚寅时,贵不久。生酉申年月,世裔冷职。子丑寅未,贵显。纯寅尤吉。 + + 丙辰日庚寅时,生寅午戌未年月,妻贤子孝,富贵双全。申子,行北运,大贵。酉丑,富。 + + 丙午日庚寅时,年月无壬癸子未巳字,飞天禄马,贵。巳酉丑申,主文学,不贵即富。未月,伤官。辰月,先贫后富。亥月,行西运,贵显。 + + 丙申日庚寅时,亥卯未、申子辰二局,官印两旺,大贵。巳丑财局,吉。寅午戌火局,平。 + + 丙戌日庚寅时,生亥子月,贵显。申酉年月,行北方运; 寅午戌,行官鬼运,俱大贵。若运临死绝,即入黄泉无疑。 ''', + '丙日辛卯': ''' 六丙日生时辛卯,旺木双妻为人巧; 不旺化水死乡中,色欲随身多爱好。 - 丙日辛卯时,败财逢合,丙日卯上沐浴,见辛合神。若身甚旺不得化者,只是为人无礼而贪色欲, - 却好如身弱化水,卯上水死,秀而不实,为人惯巧虚诈。惟丙午、丙寅、春月生, 身旺不化者,文贵显秀。 + 丙日辛卯时,败财逢合,丙日卯上沐浴,见辛合神。若身甚旺不得化者,只是为人无礼而贪色欲, + 却好如身弱化水,卯上水死,秀而不实,为人惯巧虚诈。惟丙午、丙寅、春月生, 身旺不化者,文贵显秀。 丙辛化水不相当,有助身强大吉昌; 四柱若逢冲克破,劳心劳力过时光。 - 丙日时逢辛卯,贪财坏印难成。财官运步显名声,身弱性情不定。 - 父母六亲难靠,挺身改祖方成。雁行各自望前程,有破如常之命。 + 丙日时逢辛卯,贪财坏印难成。财官运步显名声,身弱性情不定。 父母六亲难靠,挺身改祖方成。雁行各自望前程,有破如常之命。 + + 丙子日辛卯时,子卯相刑,伤妻害子。年月同,主魁名,近侍之贵。寅、午、丑、戌、天干地支俱合者大贵。 + + 丙寅日辛卯时,无祖自立,有肢体疾。寅卯未子月,贵。余月平,岁运同。 + + 丙辰日辛卯时,生寅戌月,天月二德,高。巳月,行北方运,贵。酉丑亦贵。亥卯未,大贵。 + + 丙午日辛卯时,年月中得癸水官星去刃则吉。子月,伤克妻子,寅酉,性格刚强,不受击触,三四品贵。午戌,行东南运;卯月,行西北运,俱贵。 + + 丙申日辛卯时滞,主聪明好酒色,身旺不化者贵。春吉。 冬,行北运,富贵双全。巳丑年月,行东运,二品,午未三品。 + + 丙戌日辛卯时,伤妻害子,身旺不化者贵。春,聪明好酒色。冬,行西运,富贵。夏风宪。 ''', '丙日壬辰': ''' 六丙日生时壬辰,煞星坐库火难亲; 身强反主为官贵,如弱定为贫夭人。 - 丙日壬辰时,水火未济。丙见壬偏官,辰上壬水合局,火 死无光。若生春夏,身旺化鬼为官,复行身旺运,贵。 - 秋冬, 身衰鬼旺,更无倚托,贫下残疾。 + 丙日壬辰时,水火未济。丙见壬偏官,辰上壬水合局,火 死无光。若生春夏,身旺化鬼为官,复行身旺运,贵。秋冬, 身衰鬼旺,更无倚托,贫下残疾。 丙日壬辰怕见申,再逢阳水定灾屯; 柱中若得寅午戌,变凶为吉贵绝伦。 - 丙日壬辰时墓,身衰耗鬼当途。雁行难倚不相扶,妻子何须缘误。 - 君子文章福助,常人恩反成疏。运行官禄任谋图,无破不贵即富。 + + 丙日壬辰时墓,身衰耗鬼当途。雁行难倚不相扶,妻子何须缘误。君子文章福助,常人恩反成疏。运行官禄任谋图,无破不贵即富。 + + 丙子日壬辰时,辰戌丑未月,偏官有制,吉。亥卯年月, 富贵。寅午,行子运;子,行寅午运,俱贵。不然僧道。 + + 丙寅日壬辰时,身煞两旺,寅卯辰丑未年月,大贵。巳午戌年月亦贵。 + + 丙辰日壬辰时,身孤有财,主恶死。春生,行北运;夏, 东运,俱贵。秋,南运,官至三品。 + + 丙午日壬辰时贵,身旺煞浅,若辰戌丑未月,偏官有制, 贵;无制,平常。 + + 丙申日壬辰时,旺中灾。春平,夏福,秋富,冬寿促。若申子辰木局,干透印比助,大贵,食制煞亦贵。嫌煞透无制, 财党煞强,夭死非命。 + + 丙戌日壬辰时,凶。卯未年月,运行火土,官至三品,妻贤子孝。辰戌丑月,平稳。寅午子巳年月,风宪。 ''', '丙日癸巳': ''' 六丙日生时癸巳,日禄归时又遇官; 不见巳寅壬癸月,功名唾于得何难。 - 丙日癸巳时,日禄归时,丙火巳上见癸为正官,坐贵。柱无壬己并寅亥,冲刑者贵,有则否。 - 官通水旺,丙通木旺,无有不贵。 + 丙日癸巳时,日禄归时,丙火巳上见癸为正官,坐贵。柱无壬己并寅亥,冲刑者贵,有则否。官通水旺,丙通木旺,无有不贵。 + + 丙日时逢癸巳真,号为正贵喜相亲; 柱中年月无冲破,必是荣华富贵人。丙日时逢癸巳,正官禄马稀奇。算来妻子早难为,官禄冲克最忌。 + 君子文名出众,常人财禄有余。黄金白玉出沉泥,运至时来偏聚。 + + 丙子日癸巳时,丙禄在已,癸禄在巳,互换禄马,岁月无壬已寅亥冲破,近侍风宪,位至公侯。 + + 丙寅日癸巳时,春月,干支无水,文进绣衣,荣妻荫子。 卯戌申酉年月,二三品贵。 + + 丙辰日癸巳时,不利祖宗。酉戌寅丑年月,魁罡格,通身 旺,贵。 + + 丙午日癸巳时,丑辰月,杂气财官,贵显。寅月,丙长生;已月,丙建禄,天干透财印者大贵,宜戒酒。子,官旺;酉,财旺,俱吉。 + + 丙申日癸巳时,身坐偏官、偏财,不贵即富。 + + 丙戌日癸巳时,卯戌丑未月,贵,不永。寅亥年月,风宪,嫌冲刑,宜戒酒。 + ''', - 丙日时逢癸巳真,号为正贵喜相亲; 柱中年月无冲破,必是荣华富贵人。 - 丙日时逢癸巳,正官禄马稀奇。算来妻子早难为,官禄冲克最忌。 - 君子文名出众,常人财禄有余。黄金白玉出沉泥,运至时来偏聚。 + + '丙日甲午': ''' + 六丙日生时甲午,格入伏晶要见土; 乐逢戊巳最为祥,火炎太过多辛苦。 + 丙日甲午时,丙火午上太旺,要见己合甲化土,火气伏晶, 明照四方,若不见土难享福。 + 生辰戌丑未月,上伏火气,造化 得中贵。年月干上再透戊己,运行金水,贵;不透,通土气运亦贵。通,忌刑破。 + + 丙日午时少水灾,浑如炎火又添柴; 柱中见火刑破,中末荣华不必猜。 + 丙日时逢甲午,柱中劫刃伤官。木衰火旺化为灰。四季提纲方贵。 + 君子亨通出入,常人守祖多灾。六亲骨肉少和谐,作事有成有败。 + + 丙子日甲午时,春生吉;夏无依,秋财旺,冬官贵,少子晚成,火土运发达。 + + 丙寅日甲午时,生辰戌丑未月,上伏火气,造化得中贵。午月,火太旺,凶。 + + 丙辰日甲午时,寅卯印助,申酉印旺,巳午身旺,亥子官旺,俱吉。然以火土为重,无则福薄。未戌辰丑见,吉。 + + 丙午日甲午时,寅午戌月,作倒冲论,二三品贵。子月, 南运,八九品贵。寅月,南运,金紫贵。午月,东方运,近侍贵。 + + 丙申日甲午时,不见火土气者福薄。行金水运,贵。 + + 丙戌日甲午时,春生吉,夏孤克,秋吉,子少。寅午戌月, 富贵超群。神仙宰相。 ''', + '丙日乙未': ''' + 六丙日生时乙未,火月生人多富贵; 乙为正印局中逢,不见财星方可慰。 + 丙日乙未时,生气印绶,丙见未为印库,若通火气月,贵;不通,柱无财,不行财运,亦作高命论,见则贪财坏印,主平常。冬生,官旺辅印,贵显。 + + 未时丙月生无疑,雁伴随缘各自飞;运气若行东与北,平时衣禄自无亏。丙日时临乙未,运行东北荣华。身强财旺莫咨嗟,显贵高堂大厦。 + 君子封妻荫子,常人定好生涯,堆金积玉实堪垮,富贵骑鞍压马。 + + 丙子日乙未时,春,印绶稳厚。夏平稳,秋反复,冬贵, 岁运同。 + + 丙寅日乙未时,生卯未月,印绶格,智慧丰厚,难为妻子。 寅巳子辰年月,贵。 + + 丙辰日乙未时,春吉,夏平稳,秋劳碌,冬贵显。巳午月, 行西北运,六七品贵。 + + 丙午日乙未时,不贵则富。午戌年月,职居风宪。申子辰, 官星制刃;亥印未,印绶化刃,俱吉。 + + 丙申日乙未时,不通火气,不见财星,作好命论。年月子辰会官;亥卯会印,俱贵。 + + 丙戌日乙未时,申子辰年月,近侍贵。寅卯巳年月,大贵。 + ''', + + '丙日丙申': ''' + 六丙日生时丙申,身衰财破比肩分; 暗中鬼旺七煞地,无救何能家道殷。 + 丙日丙申时,财旺身衰,丙逢庚为财,壬为鬼,申庚旺壬生,丙火无气,财须比肩分夺。若不通身旺月者贫下;有倚托 救助,又通身旺月,运再同,贵。 + + 二丙相逢时遇申,无刑无破改门庭; 火金销炼多成败,有印方能脱俗伦。 + 丙日时逢申位,比肩阳火迟疑。偏官荣旺是和非,就里妻财恁遂。 祖宗盈亏得失,双亲雁侣难依。时来鞍马家道齐,资财虚名薄利。 + + 丙子日丙申时,若通火气及寅卯月再行身旺运,吉。年月纯金,弃命就财,亦以吉论。 + + 丙寅日丙申时,时日对冲,忧伤妻子,通火气月,行身旺运,吉,亥月,手艺。 + + 丙辰日丙申时,寅月,行南运,贵。子,三合官局,天干透印,大贵。亥生透壬,多夭。戌未,平常。 + + 丙午日丙申时,主血火厄,后大发。若巳月生,庚辛透露,财星格,武贵。 + + 丙申日丙申时高,好色。子辰年月,东运,贵;不然,残疾寿促。亥卯未,吉。 + + 丙戌日丙申时,柱无壬癸亥子酉字填实,作拱格论,贵。寅戌巳午,身旺无依,僧道。 + ''', + + '丙日丁酉': ''' + 六丙日生时丁酉,刃生身死为灾咎; 柱中无救定然凶,就财弃命难长寿。 + 丙日丁酉时,刃生身死,丁为刃,辛为财,酉上辛旺丙死, 丁火长生,就财弃命,若无救助,不通身旺月,刃神不见刑冲, + 为人凶狠,不明礼义,有始无终;通月气,或有救助,为技艺便巧之流。癸卯月生者,癸能破丁刃为官,癸水卯上长生,卯 + 中有旺乙为印,如用神有力,又行水木运,贵显。 + + 丙火遇酉不相当,太阳日没少辉光; 四柱若嫌冲克破,六亲刑害走彷徨。 + 丙日时逢丁酉,天元炎火销金。六亲相守不安宁,阻碍前程难进。 日夜思量不足。居官犹自忧贪。若逢巳月改门庭,子午傍人嗔恨。 + + 丙子日丁酉时,春稳,夏贵,秋平,冬吉。未申酉亥年月, 大贵。有丑会子,有辰会酉,俱以贵论。 + 丙寅日丁酉时,卯亥未年月,干透官煞者贵。余月有艺,平常。 + 丙辰日丁酉时,寅午戌巳年月,干透煞印者贵。申子会官,干透印比者贵。如年月火土,宜见财则吉。 + 丙午日丁酉时,生巳午戌月,僧道命好;酉月贵;亥子丑寅卯辰官印年月,大贵。 + 丙申日丁酉时,通水木气月,行水木运贵。已午,身旺。亥子,官旺。年月两全者,大贵。 + 丙戌日丁酉时,月通木气,行水运,贵;通金气,行火运,金马玉堂,才名冠世。露庚藏戊,贫夭。 + ''', + + '丙日戊戌': ''' 六丙日生时戊戌,火局之中遇食神;月气火通为福寿,不通逢吉亦常人。 丙日戊戌时,寿永,名利不失。寅亥卯未印及申酉戌已年月生,贵。 丙寅日戊戌时,庙堂食神,丙以戊为食神寿星,戌上丙火入库,戊土专位,若通火气月及东南运,福厚有寿;不通,平常。 + 时上食神局,楼台店舍中;茶房饼酒肆,几度立家风。丙日戌时财库开,少年未遇且沉埋;运通早晚通官爵,设若无官也发财。 + 丙日时逢戊戌,就中仓库兼全。重重福禄自天然,富贵妻贤子羡。君子文章早立,常人财物绵延。天孤父母早淹连,辰戌钥匙开显。 + 丙子日戊戌时,寿永,名利不失。家亥卯未印及申酉戌已年胜,贵。 - + 丙子日戊戌时,夏月,福寿双全。春,木克土,食神被枭。寅月,丙戊俱长生,最吉。有申庚制甲,大贵。秋冬火衰贫下。巳申亥年月,风宪极品。 丙辰日戊戌时,午月,丙火有气,土厚地方,五六品贵。亥月,金火运,风宪。 - + 丙午日戊戌时,羊刃食神健旺,名利骤发,亥未辰戌年月,西方运,风宪。 - + 丙申日戊戌时,亥月,东方运,贵。寅午身旺,干透财,吉。丑辰刑冲戌库,发于晚年。 - - 丙戌日戊戌时贫,若通寅巳午戌火局,福寿双全,大贵。见财亦吉。 - - 时上食神局,楼台店舍中;茶房饼酒肆,几度立家风。丙日戌时财库开,少年未遇且沉埋; - 运通早晚通官爵,设若无官也发财。 - 丙日时逢戊戌,就中仓库兼全。重重福禄自天然,富贵妻贤子羡。 - 君子文章早立,常人财物绵延。天孤父母早淹连,辰戌钥匙开显。 + 丙戌日戊戌时贫,若通寅巳午戌火局,福寿双全,大贵。见财亦吉。 ''', - + '丙日己亥': ''' 六丙日生时己亥,亥中壬旺被己伤;若通月气方为贵,寅卯不逢主泛常。 丙日己亥时,鬼旺身绝,丙见己为伤官,壬为正鬼,甲为倒食,亥上有明己,旺壬生甲,丙火绝气, 若通身旺月有倚托者,化鬼为官,主贵,终亦凶狠。通身旺运亦贵; 身弱无倚托,不通月气,柱中透出壬字,为祸百端,傲物气高,主平常。 - + + 丙日亥时命最高,犹如兰蕙出蓬蒿;四柱若兼冲克破,求名求利却虚劳。 + 丙日时临己亥,若无壬字希奇。命中子少两三妻,就里喜逢天乙。父母雁侣行远,刑空文福难齐。皆因八字有高低,切忌贪财罢职。 + 丙子日己亥时,秋冬,平常。未月,行水木运,干透木火者,贵。子月,行东运,大贵。申、亥、丑、戌年月,亦贵。 - + 丙寅日己亥时,夏生,化鬼为官,妻贤子孝,不贵则富。 寅卯辰巳申丑年月,或午戌会局,天干更透丙戌字,主大权贵。 @@ -338,119 +778,207 @@ 丙申日己亥时,春夏生,移根换叶,就妻改福。秋冬平常。酉月,行东南运,风宪。 丙戌日己亥时,寅卯巳午,木生火炎,妻伤子少,聪明富贵;酉亥子丑,平常,东运亦贵。 - - 丙日亥时命最高,犹如兰蕙出蓬蒿;四柱若兼冲克破,求名求利却虚劳。 - 丙日时临己亥,若无壬字希奇。命中子少两三妻,就里喜逢天乙。 - 父母雁侣行远,刑空文福难齐。皆因八字有高低,切忌贪财罢职。 ''', - + '丁日庚子': ''' 六丁日生时庚子,身衰鬼旺暗中藏;月无救助多贫夭,得坐身强又吉昌。 若通身旺月,有倚托者贵,更行身旺运,大贵;反是,贫夭下贱。 - + 庚子时逢日是丁,火落江湖暗复明;四柱若兼冲克破,读书到老只虚名。 丁日时逢庚子,日干丁火光辉。火胎金绝有盈亏,妻妾不能全美。 有克有刑冲破,就中文福难齐。相生相救贵人提,此命先难后易。 + + 丁丑日庚子时平,通木火气,或行身旺运,贵。亦有亥子年月贵者,以丁火阴柔,不怕水乡故也。 + + 丁卯庚子时贫,辰戌丑未,偏官有制,午月干强,春身旺, 俱吉。秋冬平常。忌癸巳月,破祖凶;己未月,刑伤;甲申月,刺面血光死。 + + 丁巳日庚子时,春旺,夏强,俱贵。秋冬平常。四季月,制伏得中吉。子辰,行西运,四五品贵。 + + 丁未日庚子时,辰戌丑未月,偏官有制。午月干强,贵。 余月有制伏,吉;戊子,文章显秀。忌戊申月,夭;丙戌月,刑;辛丑月,刑凶。 + + 丁酉日庚子时,辰戌丑未月,刚明特达,贵。辰巳年月, 贵尊相府。忌甲寅月,破败恶死;癸巳月,离乡恶死;乙酉月刑死。 + + 丁亥日庚子时,五十后大旺。辰戌丑未月,吉。寅午年月,贵。忌庚寅月,恶死;庚申月,身不全死;辛酉月,破败。 ''', - + '丁日辛丑': ''' 六丁日生时辛丑,库中财谷多陈朽; 身无依倚不为凶,有托妻贤而富厚。 - 丁日辛丑时,丑为财库,辛为妻财,已为食神,丑旺金局, 暗己得位,丁火无气,若失天时无倚托者,就妻而发; - 有倚托 救助者,财食丰足。 - - 丁巳日辛丑时,因阴人致贵。巳酉丑申年月,财旺生官, 富贵。卯月平常,行此运亦贵。丑月,西南运,大贵。 - + 丁日辛丑时,丑为财库,辛为妻财,已为食神,丑旺金局, 暗己得位,丁火无气,若失天时无倚托者,就妻而发;有倚托 救助者,财食丰足。 + 辛丑遇丁为宝库,柱无匙钥难言富; 刑冲运至遇高人,发迹他乡名誉著。 - 丁日时逢辛丑,偏财库喜刑冲。若还不显有虚名。 妻子宜尔相庆,父母雁行难睦。家门换改重新,发财发福 - 见中兴。必是荣华之命。 - ''', + 丁日时逢辛丑,偏财库喜刑冲。若还不显有虚名。 妻子宜尔相庆,父母雁行难睦。家门换改重新,发财发福见中兴。必是荣华之命。 - '丁日壬寅': ''' - 六丁日生时壬寅,身去从官化木神;水木月通成局象,尊荣安富贵无伦。 - 丁日壬寅时,身去从官,丁壬化木,寅上健旺,若水局之月,大贵;通木月亦贵。 - 如丁未月,行东方运,好。 + 丁丑日辛丑时,申酉月,财格,财旺生官,贵。午月,伤财身旺,主官禄。纯子寅,武贵三品。水月,艰辛劳苦。辰月贵戚。 - 丁亥日壬寅时,日贵格,配合壬寅,官印俱全,文章显达。子月,大贵,化气凶。 + 丁卯日辛丑时,辰巳未年月,富贵,妻子迟。寅卯印助, 戌库身旺,刑。丑丁,得倚托,大贵。 + + 丁巳日辛丑时,因阴人致贵。巳酉丑申年月,财旺生官, 富贵。卯月平常,行此运亦贵。丑月,西南运,大贵。 + + 丁未日辛丑时,时日并冲,忧伤妻子。酉月,通水气,吉。岁运同。 + + 丁酉日辛丑时,寅卯巳午,身旺有托,主文名高贵,宠遇非常。申酉戌,财旺从之,最吉。亥子,官旺亦吉。 + + 丁亥日辛丑时,春印绶,吉,秋生,有火气亦吉,夏太旺,凶。冬官煞旺,吉。未戌月,冲开丑库,富。 + ''', + + '丁日壬寅': ''' + 六丁日生时壬寅,身去从官化木神;水木月通成局象,尊荣安富贵无伦。 + 丁日壬寅时,身去从官,丁壬化木,寅上健旺,若水局之月,大贵;通木月亦贵。如丁未月,行东方运,好。 丁壬合化入金乡,狗禄蝇名空自忙;节概衰残无足取,眼前骨肉亦参商。 - 丁日壬寅时合,化局木旺之乡。月支申酉不相逢,得意高人荐用。 - 父母雁行少力,外人喜笑春风,运逢水木没金踪,贵显荣达之命。 + 丁日壬寅时合,化局木旺之乡。月支申酉不相逢,得意高人荐用。父母雁行少力,外人喜笑春风,运逢水木没金踪,贵显荣达之命。 + + 丁丑日壬寅时化贵。生冬月,官旺,贵。春,印绶,安稳, 夏吉;秋平,行东运好。 + + 丁卯日壬寅时,贵化吉。寅卯年月,行金水运,大贵。亥子月,行西运,贵。 + + 丁巳日壬寅时,丁死于寅,巳无生意,又被寅刑,有始无终,若行金水运,荣贵。寅午年月,身旺;申子辰,官旺;亥卯未,印旺,俱可言贵。 + + 丁未日壬寅时,恶死。春生印吉,夏,木火运,发福。秋富,冬贵。酉戌年月,官至三品。亥卯寅戌,文贵,纯卯行金水运,金紫。 + + 丁酉日壬寅时,亥未寅卯申子年月,聪明富贵,风宪极品。巳午,宰相。辰月,行金水运;戌月,东方运,俱贵。 + + 丁亥日壬寅时,日贵格,配合壬寅,官印俱全,文章显达。子月,大贵,化气凶。 ''', - + '丁日癸卯': ''' 六丁日生时癸卯,鬼旺身衰困不禁;倚托月通方论福,不然贫下苦悲心。 乙为倒食,卯上癸生乙旺,若有倚托救助及身旺月,化鬼为官,吉,柱无运通亦吉;反此贫下,失明血疾,妻灾子少。 丁丑日逢癸卯生,求名求利且中平;身衰弄巧反成拙,得志须通遇贵人。 - 丁日时临癸卯,身衰无倚平常。门中鬼贼耗财粮,守祖须防破荡。 - 父母雁行少靠,妻子不免离乡。运中身旺煞方降,堪许利名荣畅。 + 丁日时临癸卯,身衰无倚平常。门中鬼贼耗财粮,守祖须防破荡。父母雁行少靠,妻子不免离乡。运中身旺煞方降,堪许利名荣畅。 + + 丁丑日癸卯时,辰戌丑未月,制伏得中贵。午月干强,贵。申丑,风宪。 + + 丁卯日癸卯时,寅卯月生,印绶带煞,不为凶论;行官运, 贵显。 + + 丁巳日癸卯时,丑月生,北方运,土厚地方,吉;水秀之地,二三品贵。申酉,用财亦吉。 + + 丁未日癸卯时,偏官生印。春吉,夏平,秋富,冬贫。 + + 丁酉日癸卯时,日时俱坐贵,最吉。春夏身旺,化鬼为官;秋冬身衰,勤苦。巳戌月,贵。纯午丑年月,干透庚己,清贵。 + + 丁亥日癸卯时,卯月,印绶,近侍之贵,寅午,京官五六品. ''', - + '丁日甲辰': ''' 六丁日生时甲辰,官星得位印生身;不通月气平为福,有倚扶同禄贵人。 --有误,应该是杀 - 丁日甲辰时,印绶官库,甲为印,壬为官,辰中甲木印绶生身,官星合局,若通月气,有倚托者贵,否则平常。春生, -喜北运;冬生,喜南运,吉。 + 丁日甲辰时,印绶官库,甲为印,壬为官,辰中甲木印绶生身,官星合局,若通月气,有倚托者贵,否则平常。春生,喜北运;冬生,喜南运,吉。 丁日时逢官印同,匙开财库见钱龙;支干四柱无刑破,运至方称富贵翁。 - 丁日辰时库旺,其中印绶相生。匙钥戌开喜壬丁,文秀出群超众。骨肉六亲刑克,果成花谢重荣。 - 只争运迟见钱龙,先暗后明之命。 + 丁日辰时库旺,其中印绶相生。匙钥戌开喜壬丁,文秀出群超众。骨肉六亲刑克,果成花谢重荣。只争运迟见钱龙,先暗后明之命。 + + 丁丑日甲辰时吉,亥子月,富贵。申月,东方运;午月, 金水运,俱贵。纯寅,风宪极品。 + + 丁卯日甲辰时,辰戌丑未月,孤克,运通发财。丑月,南方运,贵。卯月,金水运,近侍权贵,不利建白。 + + 丁巳日甲辰时,凶刑孤克。春印吉。夏秋平常。冬官旺。纯戌,木火运,官居冷职。 + + 丁未日甲辰时,丑亥卯未月,印绶,官贵。夏平。辰戌,贵厚。酉午,金水运,大贵。 + + 丁酉日甲辰时平,年月不见戌字,日主荣贵格。春生,南运,贵;北运,大贵。年午月支合局,人马化格,尤贵。 + + 丁亥日甲辰时,日贵格,官禄得位,必当显达。申辰年月,大贵。午月,东北运;辰月,北方运,俱贵。 ''', - + '丁日乙巳': ''' 六丁日生时乙巳,伤官暗里会枭神;东方运地成虚秀,金水之乡禄贵人。 - 丁日乙巳时,丁以壬为官,乙为倒食,巳上壬绝,有明乙倒食,暗戊伤官健旺,为人傲物志高,平常。 - 若通金水月气,贵。运通亦贵。 + 丁日乙巳时,丁以壬为官,乙为倒食,巳上壬绝,有明乙倒食,暗戊伤官健旺,为人傲物志高,平常。若通金水月气,贵。运通亦贵。 丁日巳时怕虎刑,财官运步始能通;好意人情反恶意,先难后易乐从容。 - 丁日时临乙巳,破财倒食难通。双亲雁侣且和平,妻子无嗔无闷。 - 君子文学秀气,常人财艺通明。壬庚辛癸若重逢,中末财名足用。 + 丁日时临乙巳,破财倒食难通。双亲雁侣且和平,妻子无嗔无闷。君子文学秀气,常人财艺通明。壬庚辛癸若重逢,中末财名足用。 + + 丁丑日乙巳时,春富,夏孤,秋吉,冬贵。 + + 丁卯日乙巳时,春印,夏旺,秋财,冬官,看取用何如? 俱可论吉。午未年月,文章贵显,行官禄运,吉。 + + 丁巳日乙巳时,再生巳月,倒冲,亥壬为官,无水填实破格者,主四五品贵。 + + 丁未日乙巳时,若人倒冲格,无冲破,贵。巳亥年月,三四品贵。酉丑合财局,富。 + + 丁酉日乙巳时,破财倒食,若通金水年月,行金水运,吉。 + + 丁亥日乙巳时,时日并冲,忧伤妻子。巳酉丑申子辰,金水二局,财官得用,以富贵论。 ''', - + '丁日丙午': ''' 六丁日生逢丙午,日禄喜居时上遇;柱中鼠兔癸无伤,少年腾达青云路。 丁日丙午时,青云得路。丁火午上建禄,若支无枭破,干无癸刑,禄元纯粹,主贵。如支有子卯,干有癸破禄,遇而不遇。 午时丁日禄元局,不见官星压众曹;四柱无刑行运吉,青云有路步丹霄。 丁日时逢丙午,互换禄马光辉。功名煊赫世应希,习学文章主贵。 + + 丁丑日丙午时平,寅卯戌未年月,贵。酉丑,用财最吉。忌亥子官煞。 + + 丁卯日丙午时,旺中有灾,卯字刑破白丁。巳月。西北运,贵;东南,极品有权。寅亥,武职二品。若全子酉,大贵。 + + 丁巳日丙午时,丁禄午,丙禄巳,互换禄格,柱无寅亥子字,文章显贵。 + + 丁未日丙午时贵,破祖而成。年月忌壬癸字。甲申月,财官印三奇;辰月,官库;亥月,官印,俱大贵。 + + 丁酉日丙午时平,不利子孙。亥卯未年月,贵。巳酉丑,平。寅午戌,富。 + + 丁亥日丙午时平,子月,金水运,郎官。未申酉丑年月, 俱吉。 ''', - + '丁日丁未': ''' 六丁日生时丁未,火托木局生有气;衣禄安稳且如常,运见水兮方得地。 - 丁日丁未时,火托木局,丁以甲为印绶,未为木库印绶之乡, - 若柱不见财星,不行财运,月年通亥卯未局,有倚托者,安稳之福。 + 丁日丁未时,火托木局,丁以甲为印绶,未为木库印绶之乡,若柱不见财星,不行财运,月年通亥卯未局,有倚托者,安稳之福。 二丁相遇未时排,险路中年发福来;运吉贵人相会合,安闲衣禄不须猜。 - 丁日时逢丁未,其中仓库沉埋。少年难发等时来,丑未相冲通泰。不靠双亲雁侣,花开收果妻财。 - 时逢寿足福重来,末遇荣华堪快 + 丁日时逢丁未,其中仓库沉埋。少年难发等时来,丑未相冲通泰。不靠双亲雁侣,花开收果妻财。时逢寿足福重来,末遇荣华堪快. + + 丁丑日丁未时,丑未刑冲,不得善终。年月辰戌,四库全, 贵当极品。申未,三品,法司淡薄清闲。 + + 丁卯日丁未时,刑中发。寅卯月,印绶,发财敦厚。辰戌申午,俱吉。 + + 丁巳日丁未时,拱禄格贵。年有子字,则午为阙门,得拱大贵。忌空亡填实。年月见财官印,俱吉;财,富;官印,贵。 + + 丁未日丁未时,八专太旺,早克父母妻子,衣禄平常,为僧道吉。柱通金水木并金水运,衣禄安稳,大贵。 + + 丁酉日丁未时,日贵格。若亥卯未寅月生,衣禄敦厚,寅月,金水运,金紫风宪。 + + 丁亥日丁未时,卯月,三合印局,贵而有寿,申,财官旺;亥,官旺,俱吉,夏生,丁火有气,儒官,但不免孤贫。 ''', - - '丁日戊申': ''' - 六丁日生时戊申,天元背禄败其身;月无救助财难发,只是平常衣禄人。 - 丁日戊申时,身败背禄,丁以壬为官,申上见戊土伤克,若年月干透,壬,见官为祸,虽有旺庚为财,自败不能制克, - 不通身旺月者平常。喜甲寅年月,忌壬子。 - - 丁亥日戊申时,日时相害,忧伤妻子。通月气身旺者,贵显。年月戊戌、丁巳,火土太重者目疾。 - 丁日戊申时为正,天元气旺显文明;为官虽是甘淡薄,运吉终须家道成; - ''', - + '丁日戊申': ''' 六丁日生时戊申,天元背禄败其身;月无救助财难发,只是平常衣禄人。 丁日戊申时,身败背禄,丁以壬为官,申上见戊土伤克,若年月干透,壬,见官为祸,虽有旺庚为财,自败不能制克, 不通身旺月者平常。喜甲寅年月,忌壬子。 - + 丁亥日戊申时,日时相害,忧伤妻子。通月气身旺者,贵显。年月戊戌、丁巳,火土太重者目疾。 丁日戊申时为正,天元气旺显文明;为官虽是甘淡薄,运吉终须家道成; - ''', + + 丁丑日戊申时,秀贵。未申年月,贵;行东南运,大贵。巳月,西北运,六卿之职。 + + 丁卯日戊申时,春,伤官用印;秋,伤官用财,俱吉。夏,比肩;冬,伤官见官,平常。四季月,吉。 + + 丁巳日戊申时,不贵即富,未免刑克。夏生,行西北运,贵,秋冬,劳苦。 + + 丁未日戊申时;生巳午未戌,身旺贵显。若亥卯会未,子辰会申,俱以贵论。 + + 丁酉日戊申时,寅午戌丑辰未月生,伤官伤尽为奇,又日贵格,主登科第,运行金水,腰金衣紫。 + ''', '丁日己酉': ''' 六丁日生时已酉,学堂遇贵格诚稀;妻子有气食神旺,无破无刑方是奇。 - 丁日己酉时,丁火酉上长生,学堂、天乙贵人皆兼得之。丁用己为食,辛为财,酉上明己暗辛生旺, - 文章秀丽,如见卯乙冲破者不贵。 - + 丁日己酉时,丁火酉上长生,学堂、天乙贵人皆兼得之。丁用己为食,辛为财,酉上明己暗辛生旺,文章秀丽,如见卯乙冲破者不贵。 + 丁日酉时终见贵,偏财食遇禄无归;干支生旺凶中吉,冲破财星隐祸机。 - 丁日时临己酉,食神旺相生财。清闲福禄自然来,一世为人响快。 - 君子宽洪海量,常人四海情怀。财官双美象中排,一路滔滔无碍。 + 丁日时临己酉,食神旺相生财。清闲福禄自然来,一世为人响快。君子宽洪海量,常人四海情怀。财官双美象中排,一路滔滔无碍。 + + 丁丑日己酉时,辰巳午未申戍年月贵。 + + 丁卯日己酉时,时日并冲,忧伤妻子,通火气吉。忌乙卯字。年月有亥未、巳丑,但一字两合,不以冲论。 + + 丁巳日己酉时,巳酉丑年月,财旺生官,终身富贵。亥子亦吉。 + + 丁未日己酉时,通火气,贵。见卯乙癸字不贵。 + + 丁酉日己酉时,刑害孤恶,通木火月,吉。 + + 丁亥日己酉时,蹇滞。如戊己丙丁年月,居近侍有权。卯甲乙寅,西北运,贵。 ''', '丁日庚戌': ''' @@ -460,8 +988,20 @@ 丁日时逢戌刻真,锁钥无匙库闭门;父母兄弟难依靠,立成家计自殷勤。 丁日时逢庚戌,火金刑害夭孤。丑辰不遇钥匙无,库闭财能收贮。就合托妻随住,六亲骨肉消疏。 晚年发福改门闾,此命后甜先苦。 + + 丁丑日庚戌时,时日相刑,忧伤妻子。若寅亥申酉年月, 官至三品。午未子辰,行金木运亦贵。 + 丁卯日庚戌时,生亥未年月,三合会印,贵。子月,煞印,吉。年月建禄,僧道,主贵。柱无救助,见癸旺,多患目疾, + 酉月无贵;纯酉戌年月,天干透己甲者贵,中带凶。 + + 丁巳日庚戌时,辰巳月,金水运,风宪。癸子、壬亥,南 方运,极品。纯未,西北运,三四品;身旺不行财官运,平常, 为僧道清高。 + + 丁未日庚戌时,主刑。亥卯会印,申子辰会官,俱主文贵。午月,建禄,有子冲,凶。若年月用土生财,主富;用财生官, 富贵双全。 + + 丁酉日庚戌时,日贵格,近贵,晓艺业,有机谋。酉戌, 六害,骨肉无情,秋月,五六品贵。 + + 丁亥日庚戌时,日贵格。巳酉丑年月,四五品贵。寅卯亥, 火金运,位至六卿。 ''', - + '丁日辛亥': ''' 六丁日生时辛亥,财官双美印长生;若通月气极高贵,月不通兮名利轻。 丁日辛亥时,财官双美,丁用壬为官,辛为财,甲为印,亥上有明辛为财,暗壬为官,生甲为印, @@ -470,74 +1010,584 @@ 天元丁日亥时富,平步青云路正长;得意退毛鸡化凤,鹏程万里任翱翔。 丁日时临辛亥,天元禄马同乡。官居进士挂朝裳,必是寒门将相。 定主妻贤子孝,威仪权柄难量。骤升台省与京堂,固是财官生旺。 - ''', + + 丁丑日辛亥时,秋财旺,夏身旺,春印旺,贵显。冬,官煞太重,恐身弱不能胜任其福。 + + 丁卯日辛亥时,时上财官印三奇,再得年月印助财生,皆主大贵。纯子,行木火运,官可六品,巳酉丑月,辛财得局, 方有倚旺,富贵双全。 + + 丁巳日辛亥时,时日相冲,忧伤妻子。若通火气,秋生,行东运,贵。辛月得巳亥者,破祖显秀。 + + 丁未日辛亥时,亥卯未寅辰午年月,干透正印、正官者,聪明贵显;行西运,极品。巳丑月,风宪。 + + 丁酉日辛亥时,贵人捧印,贵。子月,东方运,风宪。柱有巳丑会财,卯未会印,天干透财官印者,大贵。 + + 丁亥日辛亥时,日贵格,又三奇全,通月气身旺者贵。卯未三合印局,大贵。 + ''', + + '戊日壬子':''' + 六戊日生时壬子,月通四季墓中财; 若交身化为真火,水旺运乡忌目灾。 + 戊日壬子时,妻财俱旺,戊以壬为妻财,子上壬水旺,戊土无气,生辰戌丑未月,不化者获财。若合癸化落水旺乡,火不显其光,作事无成,虚而不实,当患目灾。通月气旺者贵。 + + 戊日喜逢壬子时,身强官旺正相宜; 运行背却休囚地,荣禄奔波任作为。 + 戊日时逢壬子,此为财旺生官。化为丁丁是漫漫,任子东西走窜。 木旺运中显达,文章秀丽多端。为人博览任追欢,富贵资财万贯。 + + 戊子日壬子时,财星格。寅卯月,禄马朝元,显贵。酉亥丑年月,西北运,金紫风宪。忌乙卯年刑;癸巳月,旺中刑; 丙午月,旺中受刑。 + + 戊寅日壬子时,卯月,正官格,贵。夏乖,秋少顺。丑酉年月,吉。忌己巳月刑,己亥月凶刑。 + + 戊辰日壬子时,春,财官旺、贵。夏乖。秋少顺。冬财旺, 行西南运,五六品贵。忌庚辰月,自刑凶;辛巳月,截路凶刑;乙丑月,破败凶。 + + 戊午日壬子时,时日并冲,忧伤妻子。巳午年月,风宪。 寅卯亥,六卿。申月,行木火运,侯伯。忌丙午月,身不全; 癸亥,自刑夭。年月子午不杂,丑戌又刑,俱主大贵。 + + 戊申日壬子时高,先滞后旺。子酉年月,时上偏官,贵。巳午未戌,身有制化,用财亦专,皆以吉论。 + 申酉,食伤生财, 天干透甲乙者,富贵双全。忌己巳月刑害,壬午月夭伤,癸亥 月孤贫。 + + 戊戌日壬子时,寅巳午年月,去财留印,三四品贵。经云 :能见义忘利,取印舍财是也。 + 子酉,五品翰林。纯酉,水木运,玉堂极贵。忌戊午月,刺面短夭;辛卯月,破败凶刑;癸丑月,受刑;庚午月,贫瞽。 + ''', + + '戊日癸丑':''' + 六戊日时生癸丑,却去从妻成配偶; 为人性巧甚聪明,尤好风流嗜花酒。 + 戊日癸丑时,戊以癸为妻财,丑中有癸余气从财,癸旺, 若通月气化为真火,为人聪明;若通土气,主富贵,操权。夏月,行东方运,贵显。 + + 化合南离局,财门日月开; 柱中无冲破,福禄自然来。 + 丑时戊癸化合柜,最喜刑冲忌锁闭; 运行忽遇钥匙开,兴旺家门为活计。 + 戊日时逢癸丑,化为炎火生光。运行地水不相当,运到东南兴旺。祖业相离不定,从妻置买田庄。不然骨肉有刑伤,晚景荣华旺相。 + + 戊子日癸丑时,戊月生,杂气印绶,天干透丙丁字,不必格局,主富贵。若年月午酉,干透庚乙,乙与庚合,戊与癸合, + 戊食庚,庚旺于酉,贵于丑,癸为财,乙为官,而印根于午,日时干支为天地合德,贵禄交加,况兼以罗文贵,遇者主极品。 + + 戊寅日癸丑时,寅已午未戌月,化火吉。秋冬平常。 + + 戊辰日癸丑时,寅巳午未戌月,化火得地,申子辰财局亦吉。年月干支纯土,得四库全者贵。 + + 戊午日癸丑时,寅戌未午年月,聪明特达威权。 + + 戊申日癸丑时,辰戌丑未午月生,富贵爱酒色。夏,东方运,贵。秋冬,财旺生官,若身衰,不夭即贫。 + + 戊戌日癸丑时,夏生,东方运,贵。辰戌丑未月,富贵操权,好花酒风流。 + ''', + + '戊日甲寅':''' + 六戊日生时甲寅,病中又被鬼伤身; 月气若通身旺吉,日干衰弱夭亡人。 + 戊日甲寅时,身衰鬼旺,寅中甲建禄,丙生身,如通身旺月,有倚托有救助,化鬼为官,主富贵;反此贫夭,行身旺运亦吉。 + + 寅时戊日自非凡,卓越超群出世间; 定显寒门出将相,如逢身弱是艰难。 + 戊日申寅时正,身强花木逢春。偏官如遇怕刑冲,假煞反为权印。 煞旺身衰减福,难倚雁侣双亲。如行印运福骈臻,定主才 名初顺。 + + 戊子日甲寅时,先破后发,贵。未月生,干有制伏,贵。 午月无制,聪明近贵。辰戌丑身旺,亥卯煞旺,但有印有制, 贵。纯乙丑年月,金紫。 + + 戊寅日甲寅时,身旺,骨肉不同居。午月,刃印带煞;子月,正财党煞,干透制;亥卯未,纯煞身柔,干透刃,运行西南,兵权万里; + 巳丑戌年月,身旺敌煞;酉丑申,制煞,皆主大贵,嫌劫煞克身则凶。 + + 戊辰日甲寅时,时上偏官,印绶带煞,柱有庚辛制伏者, 贵。辰戌丑未,身旺亦贵。 + + 戊午日甲寅时,曰羊刃,时偏官,以刃合煞,贵。巳酉丑月,刀笔惊人,制伏不宜太过;寅卯辰巳戌子年月,天干有制 + 伏,俱主大贵。 + + 戊申日甲寅时,申酉,伤官带煞,土厚地方,贵。丑卯年月,去煞留官,大贵;要行金火运,位极人臣。 + + 戊戌日申寅时,辰、戌、丑、未月,行水木运,三品。丑未年月,行金水运,富贵双全。申子、酉子年月俱贵,子孙亦昌。巳午,贵,伤妻害子。 + ''', + + '戊日乙卯':''' + 六戊日生时乙卯,四柱伤官不见好; 辛申弗逢冲害无,管取功名直到老。 + 戊日乙卯时,官强身弱,戊用乙为官,卯上乙旺戊死,若无倚托,不通月气,身弱化官为鬼,纵贵寿夭;若通月气,身 旺有托,柱中不见申酉辛庚、伤官甲木破命者贵显。 + + 时上生官坐禄权,戊日逢之不等闲; 身强有托方成贵,制合官星贵亦难。 + 戊日时逢乙卯,木冲六合开通。金鸡玉免显光荣,合掌光辉权印。乙酉辛伤雁侣,重花结子方成。困龙得水喜腾云,运至超群出众。 + + 戊子日乙卯时,时日相刑,伤妻害子,自成自立。年月再遇,主风宪。午酉,四正全,大贵。 + + 戊寅日乙卯时,亥子年月,妻贤子孝,贵。卯辰纯,吉;寅巳亦吉。 + + 戊辰日乙卯时,身孤,贵。巳卯年月,身强官旺,荣身显祖,子孝妻贤。 + + 戊午日乙卯时,刃格,正官去刃为福,子寅卯辰午未申亥年月,俱主贵显。 + + 戊申日乙卯时,中年破祖。春贵。夏近贵。秋孤苦。冬富贵双全。巳月,木火运,五品上贵。 + + 戊戌日乙卯时,春官旺。夏,官印双全,贵显。秋平。冬贵。戌丑年月,方面三品。戌月,行东方运,孤贫。 + ''', + + '戊日丙辰':''' + 六戊日生时丙辰,宝藏财库利于身; 无伤无破何须问,禄马相扶富贵人。 + 戊日丙辰时,官藏财库,戊用壬癸为财,乙木为官,丙为倒食,辰上丙火无气,壬癸入库,乙有余气,若有倚托通月气者,贵显。 + + 丙辰时逢为倒食,库中财官锁闭门; 不遇钥匙难发达,诛求劳碌度晨昏。 + 戊日丙辰时正,火光坐库无功。财官锁闭主兴隆,专等钥匙收用。卯戌开放乙癸,富贵名举高崇。运行火土不亨通,作事浑如醉梦。 + + 戊子日丙辰时,春生近贵。夏辛苦。秋,权高寿促。冬财,通火土,有倚托者贵。 + + 戊寅日丙辰时,龙吟虎啸,中年大贵。子月,行北运,土厚地方,官至三品;东运,风宪。丑辰年月,四五品贵。寅午戌年,通土气月,行木火运,极品。 + + 戊辰日丙辰时,克父大发,通身旺月,行东北运富;水木月,行身旺运,贵。 + + 戊午日丙辰时,亥卯年月,行东北运,富贵。未丑,行西南运,风宪。 + + 戊申时丙辰时,辰戌丑未月,贵;不通土气,行土运亦贵。 + + 戊戌日丙辰时,时日并冲,忧伤妻子。魁罡,行东北方运, 主权重发福。酉月,近贵无福禄。亥卯未月,以官印论,贵。 + ''', + + '戊日丁巳':''' + 六戊日生时丁巳,印生日禄喜归时; 财官不见刑冲破,早际风云会遇期。 + 戊日丁巳时,印绶遇禄,戊禄居巳,见丁为印,巳上丁火帝旺。年月支干不宜见财官,见官损禄,见财损印。不见官煞, 不行财官,行食伤印运,高贵。忌刑冲破害。 + + + 日干支禄喜归时,不见财官贵可期; 无破禹门三级浪,伫看一跃上天池。 + 戊日时临丁巳,禄元印绶相逢。早夺丹桂步蟾宫,合掌公 卿权柄。 食神伤官运吉。财官相遇无功,双亲雁侣不扶,同有破别 寻格用。 + + + 戊子日丁巳时,贵。子月正财,土厚地方,显达。亥丑年月,官居极品,内臣中,富贵双全。 + + 戊寅日丁巳时,寅巳相刑,忧伤妻子。午月,东北运,风宪。寅午年月,四品。 + + 戊辰日丁巳时,巳酉丑月,性格风流,威权重大。年月支干不见财官,青云得路。亥戌,行南运,五六品贵。申,行北运,贵。 + + 戊午日丁巳时,柱无甲乙卯寅,日禄归时格,又戊禄居时,丁禄居日,为互换禄,高贵;行伤食印运,吉;有甲乙寅卯未字,作官印取用亦贵。 + + 戊申日丁巳时,春夏平,秋成败,冬富贵。行木金运,吉。 + + 戊戌日丁巳时,无冲破,年月不见财官,不行财官运,贵。寅月,作偏官论,行未申运,贵。子月,透甲亦贵。 + 亥卯未, 虽见财官,俱吉,盖归禄格不忌官煞与财,以身旺得之,反为福也。 + ''', + + '戊日戊午':''' + 六戊日生时戊午,为人凶狠性多刚; 月中化火居官吉,破害刑冲却是良。 + 戊日戊午时,刃神重叠,戊以午为刃,性狠多刚,如见刑冲破害,刃神受制,通月气者,为边疆武职。月中有化气得天时者,大贵。 + 年月干见甲,僧道命。年中火旺,戊土被焚,多患脾肺疾。若月不通寅午戌亥,通运气者亦贵。 + + 戊逢戊午火离乡,刃旺身强大显扬; 运蹇时乖名未就,平常衣禄度时光。 + 戊日时逢戊午,比肩财禄迟违。妻重子晚任施为,发达运临壬癸。父母雁行少利,六亲冰炭疏 癸有。冲克破始奇特中,末之年主贵。 + + 戊子日戊午时,巳寅戌月,风宪。夏不熔铸,先刑后发, 旺处多官。灾破祖。 + + 戊寅日戊午时,戌月,三合火局,干透癸化,得天时地利者贵。年月申子会水,寅午会火,有既济之妙;辰月亦得;酉伤官;未官印,俱吉。 + + 戊辰日戊午时,拱禄格,年月无寅巳甲乙字,贵。卯申, 武职。酉丑亥,行南运,贵。 + + 戊午日戊午时,先刑后发,多不善终。寅巳午戌年月,印绶,大贵。纯午,武职威权,名重镇藩。亥卯未申,富贵双全。 + + 戊申日戊午时,拱贵格,年月逢寅,行南运,风宪;逢午,贵寿;戌文贵。有未填实、巳建禄相连一片者,大贵。 + + 戊戌日戊午时,大凶。卯午年月,官运,贵显。寅,印绶带煞,变凶为吉。 + ''', '戊日己未':''' - 六戊日生时己未,羊刃偏官不怕冲;但是为人多性狠,平生衣禄亦无凶。 - 戊日己未时,羊刃偏官,戊以己为羊刃,甲为偏官,时上明暗二己为刃,甲木未中合局,若见刑冲破害,刃煞有制,主贵。 - 通月旺者平常衣禄,二十年,父母俱失;若不通月气,得寅申者贵。 + 六戊日生时己未,羊刃偏官不怕冲; 但是为人多性狠,平生衣禄亦无凶。 + 戊日己未时,羊刃偏官,戊以己为羊刃,甲为偏官,时上明暗二己为刃,甲木未中合局,若见刑冲破害,刃煞有制,主贵。 + 通月旺者平常衣禄,二十年,父母俱失;若不通月气,得寅申者贵。 + + 未中戊己土成堆,刑害冲来事亦谐;先暗后明凶变吉,贵人提携出尘埋。 + 戊日时临己未,六亲骨肉成疏。喜逢火印暗中扶,甲乙寅卯为主。重谢花开结果,双亲雁行夭孤。自为自立自图谋,赖有贵人扶助。 - 未中戊己土成堆,刑害冲来事亦谐;先暗后明凶变吉,贵人提携出尘埋。 - 戊日时临己未,六亲骨肉成疏。喜逢火印暗中扶,甲乙寅卯为主。 - 重谢花开结果,双亲雁行夭孤。自为自立自图谋,赖有贵人扶助。 + 戊寅日己未时,时日相穿,忧伤妻子,早苦晚好。月通土气,行财官运,贵;水木月,行身旺运,贵。 + + 戊寅日己未时,先难后易,贵人提携,不贵即富。年月透甲制刃,地支午未身旺,煞刃双显,主大贵。 + + 戊辰日己未时,春冬,行北运,富贵。 + + 戊午日己未时,羊刃偏官,主人机谋,寿促,不然,妻子难为重立重成。午亥年月,金土运,贵;申酉,富。 + + 戊申日己未时贵,行财官运,发福。嫌寅冲煞有凶。 + + 戊戌日己未时,春,官旺,贵。夏印安稳。秋平。冬孤苦。戌月,魁罡格,五六品贵。须年月申子辰会财,寅午印绶,己酉伤官,亥卯官煞,各成局面方吉。 ''', - - + + '戊日庚申':''' + 六戊日生时庚申,干上食神喜相亲; 不见卯寅兼甲丙,何忧玉带不荣身。 + 戊日庚申时,戊以庚为食,壬癸为财,申上庚旺壬生,戊土有气,无丙火夺食破财,再无寅巳刑冲,生秋月大贵。 + 如有丙火甲寅并巳,为人反复,亦有功名。年月干止透甲三奇,地支会局,或止寅辰,皆贵。 + + 戊日时临喜见庚,食神合禄主昌荣; 旺中若见刑冲字,活计生涯只许平。 + 戊日庚申时遇,支上生旺奇希。食神生神显光辉,上下流通旺气。 丙字伤枝损叶,甲寅群雁行亏。若无冲破与刑克,积玉堆金之贵。 + + 戊子日庚申时,若生亥子月,亦是合禄,贵。 + + 戊寅日庚申时,凶刑后发,如生寅月,作食禄制煞论,贵。 + + 戊辰日庚申时,专食合禄,纯寅年月,二寅不怕一申冲, 亦贵。 + + 戊午日庚申时,未酉丑年月,柱无丙甲卯寅,入合禄格, 行西北运,贵;有甲丙又合神藏煞没,四柱纯阳格,大贵。 + + 戊申日庚申时,身禄同窠,富贵两全,子辰未酉年月,行西运,入合禄格,近上三品。年月丑戌,吉:辰戌伤克,平常。亥巳年月,行东北运,一二品贵。 + + 戊戌日庚申时,灾疟内,子月,亦合禄格,文贵三品。卯辰年月,大贵。 + ''', + + '戊日辛酉':''' + 六戊日生时辛酉,伤官暴败怕时逢; 柱中纵有财星助,有子不成命早终。 + 戊日辛酉时,身败伤官,戊以乙为官,辛为伤官,酉上辛金旺,戊土沐浴,为人性傲行卑。年月透乙,为祸百端;如有乙再行官旺运,刑害不吉。若通生气月,行北运,不贵即富。 + + 戊日逢辛号剥官,时上遇之尤堪嫌; 官星若遇生奇祸,尤恐带疾子不全。 + 戊日时临辛酉,伤官不喜官星。财乡运地始亨通,性格心情不定。无破难招祖业,雁侣各自飞腾。妻重子晚始安宁,先难后易之命。 + + 戊子日辛酉时,巳酉丑月,伤官伤尽,行财旺运,武职风宪。 + + 戊寅日辛酉时,通土气月,行西北运,不贵亦富。 + + 戊辰日辛酉时,丑未年月,干透财,主贵。若癸巳月,词馆学堂居提纲,主文学高科,寅申巳亥年,则时犯狼藉煞,晚无结果。 + + 戊午日辛酉时,春夏平常。秋,伤官伤尽,权贵寿促。冬,难为妻子。 + + 戊申日辛酉时,戌亥丑子年月,权贵。 + + 戊戌日辛酉时,辰戌丑未月,贵。古人以水土败在酉,所以多无结果,或功名早退,或子息不成。观上六日无大官命, 可见伤官时遇不吉。 + ''', + + '戊日壬戌':''' + 六戊日生时壬戌,身居正位见天财; 若生秋月通身旺,万贯家资不用猜。 + 戊日壬戌时,专位逢财,戊以仁为财,戌上水冠带。春夏壬水无气,财帛不旺;冬则大旺,土虚身弱不能驱驾;惟秋后 戊土坚厚,财命有气,富贵。 + + 壬戌时财库内埋,要开专等钥匙来;运行财官生旺地,富贵荣华不用猜。 + 戊时逢壬戌,柱中卯丑为欢。子辰乙贵显财官,出住高人相伴。开库填房就舍,无冲雁侣难完。先贫后富事团圆,不贵仓箱广满。 + + 戊子日壬戌时,酉申戌月,家财满目。辰、丑冲刑库开,俱吉。 + + 戊寅日壬戌时,寅午戌辰年月,金水运,大贵。 + + 戊辰日壬戌时,时日并冲,忧伤妻子,如土厚地方,大贵。卯月,火金运,中贵。寅申戌丑,行西南运,极贵。 + + 戊午日壬戌时,寅午戌月生,时岁火多,以印绶论,未免 孤克,先难后易,不贵即富。卯月,官星制刃,吉。 + + 戊申日壬戌时,春贵,夏平,秋富贵,冬平常。 + + 戊戌日壬戌时,秋富贵。夏,西运;春,北运;冬,南运, 俱贵。辰丑月,尤吉。 + ''', + + '戊日癸亥':''' + 六戊日生时癸亥,化火无戌战水乡;若见乙庚丁丑无,反为官命不寻常。 + 戊日癸亥时,戊合癸化火,火绝于亥,战于水乡,不成其象,为人虚秀,多是九流艺术近贵之人,主患目疾。 + 戊以甲为鬼,壬癸为财,亥上壬旺甲生,戊土气绝,财帛聚散,若年月干头见乙丁庚旺,为三奇之贵;通土气月身旺,行火木运,吉。 + + 戊戌日癸亥时,寅卯午巳丑戌亥年月,天干透乙庚丁字, 清要权贵,宜火土运。 + 戊癸化火亥时生,落照江湖暗复明;卯未月生三合吉,移屋换舍必安宁。 + 戊日时临癸亥,天干化火为奇。乙、庚丁旺喜相宜,定主名声显贵。 四海春风响快,六亲骨肉刑亏。妻贤子孝乐怡怡,无破科名及第。 + + 戊子日癸亥时,年月不见戊字破格,贵。申子年月,东南运;亥卯,南运,俱贵。巳午未旺,大贵。 + + 戊寅日癸亥时,午未月生,化火会局,高命。春,官煞混杂,温饱衣禄。酉丑年月,三品京堂。 + + 戊辰日癸亥时,秀。亥子月,财官格,不贵则富。寅卯年月,贵显。夏生,教职。 + + 戊午日癸亥时,贵。寅巳年月,土厚水秀地方,六七品贵。卯未辰丑,俱吉。 + + 戊申日癸亥时,子未年月,无祖业,因妻致富,不然移根换叶,贫而且贱。 + ''', + + '己日甲子':''' + 六己日生时甲子,明见官星暗有财; 倚托若通于月气,平生衣禄自天来。 + 己日甲子时,明官暗财。己用甲为官,癸为财,辛为食, 子为天乙贵,子上有明甲暗癸,辛长生。身若有倚托通月气者, 富贵;若不身旺,行土气运,亦好。 + + 己日喜逢甲子时,财官双美贵希奇; 一朝得遇风云会,独步蟾宫折桂枝。 + 己日时临甲子,化生土厚滋基。财官既助显光辉,有似青龙戏水。不遇庚金卯午,为人禄至福齐。常人发福有施为,君子登科及第。 + + 己丑日甲子时,化贵,午寅年月,夭折;通土气月,贵。 忌甲寅月,贵中恶死。丁未月受刑,丁丑月破祖,失乡恶死。 + + 己卯日甲子时,先破祖后旺,或旺中有伤。辰戌丑未月,贵。午,身旺。子,聚贵,亥,官长生,俱大贵。忌己巳月, 破败凶死。庚申月,血光恶死。壬子月,刑害死。 + + 己巳日庚子时,辰戌丑未月,风宪三品,要行水木运,西运无成,南运财官无气,虚名薄利,贵而不显。 + 子寅年月,东南运,贵显;《神白经》说:“化土生福,但不显。”忌壬寅月,受刑。乙未月,刑伤。癸酉月,夭。 + + 己未日甲子时,高身坐官库,辰戌丑未月,吉。寅亥月,官旺,文章振发,贵显易成。巳丑,文贵晚成。寅卯,贫下。 + 忌甲申月,身不完死。丙子月,孤贫。丁丑月,刑害。 + + 己酉日甲子时,寅申午未丑年月,文贵风宪。午月,东北运,极品。忌庚寅年,破败恶死。己巳月,凶恶。戊戌月,孤单血死。 + + 己亥日甲子时,春夏,财官生旺吉;秋冬四季,背禄逐马,凶。寅月,金火运,郎官。午月,东北运,金紫。忌壬寅月,恶死。壬申月,过贫遭刑。癸酉月,破败。 + ''', + + '己日乙丑':''' + 六己日生时乙丑,煞星受制不为伤; 柱中身旺多荣贵,无助生人昼夜忙。 + 己日乙丑时,专财逢鬼,丑上有明乙为鬼,暗癸为财。若有倚托通身旺者,贵;通运亦吉。若鬼有助,旺不能任者,衣禄平常。 + + 时逢乙丑本身衰,库有财星内伏埋; 不遇钥匙难显达,方知出外称心怀。 + 己日时临乙丑,库中耗鬼兴灾。祖宗产业有盈亏,谋望财去财来。戌未刑冲发福,无匙,来往搬移,双亲雁序事难依, 有救未中取贵。 + + 己丑日乙丑时,时上偏官,居武职都阃,还看地方断之。卯月金水运,六七品贵。 + + 己卯日乙丑时,子申月,行金土运,侯伯。巳酉丑戌年月, 俱吉。 + + 己巳日乙丑时,寅卯月,偏官格。无酉戌字,文进贵命。 + + 己未日乙丑时,时日并冲,妻生财可也。卯午年月,金神 入火乡,西南运,贵。辰戌四季全,大贵。干透丁辛,纯阴亦贵。 + + 己酉日乙丑时,卯月,偏官。辰月,财煞,贵。申酉,伤官伤尽。巳午,印绶,俱贵。丑戌,亦贵。 + + 己亥日乙丑时,卯月,大贵。申月,水木运,风宪、方面。 + ''', + + '己日丙寅':''' + 六己日生时丙寅,暗官明印旺其身; 月通木气无冲破,贵倚三台八位成。 + 己日丙寅时,官印生旺。己用甲为官,丙为印,寅上甲旺丙生。如果无破、通木局月气者,大贵。喜行木火,不宜金水, 岁君同。 + + 己日丙寅时异常,少年未遇富文章; 运行卯地生明月,平步青云到帝乡。 + 己日丙寅时正,官星印绶长生。学堂三合喜光荣,博览文章聪俊。年月无冲无破,定应金榜题名。运行官旺主亨通,上等高人之命。 + + 己丑日丙寅时,春官旺,夏印旺,秋既济,冬平。辰戌年月,文贵显达。纯丑,寿高。戌月,木火运,五、六品贵。 + + 己卯日丙寅时,午辰年月,文章显达,大贵。寅午,官至三品。 + + 己巳日丙寅时,先刑后旺。寅月,正官格,文章显贵。亥子水,水运,贵。纯戌,武职三品。年月申亥四生局全,大贵,或不善终。 + + 己未日丙寅时,生土厚地,方贵。水木年月,行东北运, 贵。一云多庶出过房,或父不见生。 + + 己酉日丙寅时,月通木火局,贵;木火运,亦荣达。 + + 己亥日丙寅时,春生官旺,贵;夏秋平;冬财旺,吉。寅申丑巳午辰戌年月贵。《神白经》云:“火木象贵。” + ''', + + '己日丁卯':''' + 六己日生时丁卯,支干暗鬼枭虚神; 柱中有助方为福,无助难为显达人。 + 己日丁卯时,己以丁为印,乙为鬼,卯上明丁暗乙。若岁月中无救助倚托者,虚秀不实,有成有败。月中见辛制伏身旺者,贵;运旺,亦吉。 + + 己亥日丁卯时,秋生,偏官有制,富贵。春寿促。夏身旺, 吉。冬平常。辰戌丑未月,贵。 + 己日卯时福自摧,求名求利总不宜; 身宫但有刑克字,离乡别井走东西。 + 己日时逢丁卯,倒食偏官交加,酉庚辛破受波渣,思想不能通达。父母雁行难望,落花后立根芽。圆亏离祖可成家,发迹山林涧下。 + + 己丑日丁卯时,申子辰,武职。亥卯未,荣富。巳酉丑,行东北运,吉。 + + 己卯日丁卯时,巳酉年月,制伏得宜。庚申合煞,文进大贵。子月,刑煞遇贵,主兵权或法官。地支纯印或三合木局,运行寅,混官再遇流年冲运,凶死。 + + 己巳日丁卯时,无冲破,富贵;寅午辰年月,刑伤不利。亥月,木火运,贵。若春生透甲乙者,官煞太旺,有制化,亦贵;否则凶夭。 + + 乙未日丁卯时,不贵则富;卯戌亥丑年月,吉。 + + 己酉日丁卯时,九成十破,未年旺。年月通身生旺,干头 有辛癸制伏丁乙者,吉。 + ''', + + '己日戊辰':''' + 六己日生时戊辰,其身得位遇财神; 田园富贵多诚信,甲乙提纲禄贵人。 + + 己日戊辰时,财库专位。已以壬癸为财,辰上入墓,己土 专位。为人诚信富贵。 + 若通月气或甲乙透出,是生月带禄、大 贵。辰月,身旺,不得父母力。见甲化土者,大富。 + 冬夏,财 旺生官、富贵。西运,平常。 + + 己丑日戊辰时,身孤。寅卯月,禄旺。辰月透甲,作化气 看,贵。午,富厚。寅酉,风宪。 + 年月子丑透甲,行东南运, 金紫,近侍;怕西北运,退职。 + + 己卯日戊辰时,卯月,风宪。水木年月,行东北运,并同。 + + 己巳日戊辰时,身孤后发。春官贵;夏平稳;秋凶暴;冬 财旺。岁运同。 + + 己未日戊辰时,丑月,杂气财官,吉。寅辰巳亥午戌年月, 文章贵显。 + + 己酉日戊辰时,春官旺,夏平吉,秋暴狠,冬财旺。 + + 己亥日戊辰时,丑月,杂气财官,贵。戌月,木水运,六、七品。寅午子辰年月,大贵。 + + 辰时己日不寻常,内有钱龙镇库藏; 比劫不逢行运吉,定教富贵广田庄。 + + 己日戊辰时遇,身逢旺库丰盈。果然花谢再重荣,丑戌刑 冲财盛。 + 壬申财官双美,妻重子晚方成。双亲雁侣事中平,独立自成之命。 + ''', + + '己日己巳':''' + 六己日生时己巳,金神与火两相和; 不通月气平常看,月气如通荣甲科。 + 己日己巳时,金火相合,己以丙为印,巳中有丙,健旺; 己巳又为金神,坐于火位,相合。若通火月气,四柱不见财星 + 破印,不行财遇,发福非常。若不通月气,或在冬生,虚秀不实。不通,得南运,亦吉。 + + 己亥日乙丑时,夏生,资财满目,行乐轩昂。冬,平常, 戌月、东南运,国师、金紫。寅月,亦贵。 + 己日重逢己巳时,金神化旺要相宜。南离运步财官显,寅卯东方遇亦苛。 + 己日时逢己巳,夏生丙火金神。不遇戌亥与庚申,无破声各响应。父母一衰一旺,刑空事业逡巡。要知显达改名庭,火旺南方之运。 + + 己丑日己巳时,辰月,西北运,贵。午未火旺,大贵。申子戌巳,亦吉。 + + 己卯日己巳时,夹辰财库,主大富。又,卯以巳为驿马, 二己通看,谓之坐马。再生午月,禄马俱有,尤为贵命。 + 亥月, 财临旺地,官遇长生。巳月,金神遇火,皆主大贵。 + + 己巳日己巳时,午年月,权威赫赫,名誉昭昭。春月,子孝妻贤。秋冬平常,贵而不显。辰戌,财印官食;申,伤官生财,俱作吉推。 + + 己未日己巳时,拱禄格。若无羊刃七煞,午字填实,不犯空亡,主显贵。亥丑辰申年月,行东运,文武极品。此格不如丁巳、丁未,以丁正禄,巳寄禄故也。 + + 己酉日己巳时,夏生,金神入火乡,贵显,岁运同前。 + ''', + + '己日庚午':''' + 六己日生时遇午,禄归时地主昌荣; 柱中怕有官星见,若是伏晶另一评。 + 己日庚午时,日禄归时。已见庚为伤官,乙为正鬼;午上有明庚合乙,伤官合煞,主人独立有成。 + 若年月无乙而伤官临于败地,柱有甲、丙二字,伏晶格,不损格局无冲破,主大贵。 + + 己逢庚午时归禄,无破无冲能发福; 柱中丙申若相逢,德润身兮富润屋。 + 己日时逢庚午,名为背禄伤官。冲刑破害祸多端,骨肉六亲冰炭。 + 甲丙柱中如遇,伏晶之格清闲。月中丹桂任高攀,富贵不须推算。 + + 己丑日庚午时,寅月生,贵;夏凶;秋暴;冬,财旺子少。 + + 己卯日庚午时,已禄居午,年月有甲丙及寅午者,大贵。卯月,煞旺庚合,权贵。 + + 己巳日庚午时,贵。寅午戌月,金神入火乡,作印绶论,贵显,辰戌丑未年月,侯伯。若逢合煞运,必不善终。酉月、东南运,贵。 + + 己未日庚午时,背禄伤官,六亲刑克;无破,晚年发旺。未戌年月,贵。 + + 己亥日庚午时,午戌年月,财官禄印,大贵。寅年午月,巨富。卯月,西运。贵。 + ''', + + '己日辛未':''' + 六己日生时辛未,食神官库喜相亲; 木通月气须言贵,月不通兮富命人。 + 己日辛未时,食神助官。己以辛为食,甲为官,未为官库, 未上有明辛暗甲。若有倚托通月气,贵。食神生旺,胜过财官。通木气月,官旺,尤贵;不通,主福。通运,亦贵。 + + 己日相逢辛未时,灯窗寂寞有谁知; 运行财旺兼官旺,名利双全莫恨迟。 + 己日时临辛未,食坐官库要开。丑戌刑冲显官财,镇闭前程阻碍。君子文章福助,常人商贾奇魁。匙开发福命中该,财去财来常在。 + + 己丑日辛未时,不贵即富。通土气月,富。通木气月,贵。一云刑,凶。 + + 己卯日辛未时,酉戌亥卯,未年月,贵,行东南运,金紫。 + + 己巳日辛未时,金神日。寅午戌月生,贵;亥卯辰午,行金火水木运,大贵。 + + 己未日辛未时,春夏、丑月,丰姿特达,言语清辨,名高禄重。秋冬,平常。木火运,刑害发财。一云财中自害。 + + 己酉日辛未时,春反复;夏吉;秋寿促;冬财帛丰厚。卯月金水运,五品以上贵。丑月西南运,郎官。辰戌,财印库地俱吉。一云凶刑后旺。 + + 己亥日辛未时,春贵,夏稳,秋贫,冬富。酉月,己土长生,食神遇禄,享受自然。一云贵中凶失。 + ''', + + '己日壬申':''' + 六己日生时壬申,损败天元气不全; 若失天元无倚托,非穷即夭命难延。 + 己日壬申时,水旺土虚,己以甲为官,壬为财,庚背禄。 申上庚旺壬生甲绝,己土气败。若通四季土气或通土气运,吉。 + 若失天时无倚托,不通月气,非贫即夭;不然残疾,末狼狈。 + + 日干是己会申时,无破无冲最合宜; 柱中纵然官不现,也交财旺定根基。 + 壬申时逢己日,就中三合为宜。天乙贵人正人提,宜用财官显贵。戊己辰戌得位,文章广学须知。妻贤子孝福文齐,刑破中 年不利。 + + 己丑日壬申时,酉年月,天干透印,富贵好礼,为人慨慷。辰戌吉。亥年,乾清坤夷大格。寅申,官贵相辅,俱吉。 + + 已卯日壬申时,辰月,杂气财官,早贵。亥月、南方运, 五、六品贵。寅申年,三、二品贵。 + + 己巳日壬申时,大凶,刑。己酉丑月,伤官,行财运,吉。寅午戌月,金神入火乡,运西南,贵。申子辰月,木火运,贵。 + + 己未日壬申时,巳月生,贯朽粟陈。亥子寅月,金火运, 侯伯。辰亥年月,近侍,贵。 + + 己酉日壬申时,巳酉丑月,伤官伤尽,吉。寅月,凶暴。 卯未,武职。子未公侯。一云主心狂贤病,大贵。 + + 己亥日壬申时,卯未、三合会官,干透印,大贵。戊子月, 财旺生官。酉己土受生,干透甲丙,俱吉。 + ''', + + '己日癸酉':''' + 六己日生时癸酉,沐浴之乡水土浑; 财食支藏多聚散,身衰失地寿难存。 + 己日癸酉时,水土浑浊。己以癸为财,辛为食。酉上癸病, 辛旺,比肩夺财,财多聚散;更身衰失地,主成败反复;不然, 寿促。若通身旺月或运,吉。 + + 己逢癸水酉时生,食神生旺自从容; 身弱更兼冲克破,此命依算只中平。 + 己日时逢癸酉,偏财喜遇食神。雁行无倚靠双亲,性格情怀不定。财来财去聚散,眼前广见难存。花开花谢再重新,此命先逆后顺。 + + 己丑日癸亥时,春平;夏稳;秋伤官伤尽,有威权;冬富。如丙寅巳月,金神遇火,贵。丑月,金水运,郎官。透乙,大贵。 + + 己卯日癸酉时,时日相逢卯酉,主迁移;刑伤又伤官带煞, 主性凶暴,作事迟延。生四季月,吉。 + + 己巳日癸酉时,巳酉丑月,伤官伤尽,居武职、风宪。卯戌月,金神入火乡,贵而能言,伤贵,收心早退,以水土败在酉故也。 + + 己未日癸酉时,戌亥丑辰年月,西方运,贵。子巳大贵。卯、辰,近侍不大。 + + 己酉日癸酉时,偏财遇食,主峥嵘。丑未子午俱吉。酉月、内戚。如年月己酉全,犯破碎煞,主一生破败,游走无结果。 + + 己亥日癸酉时,通土气月,行木火运,贵。 + ''', + + '己日甲戌':''' + 六己日生时甲戌,妻从夫化为真土; 如通月气禄源深,反此而言平常取。 + 己日甲戌时,妻从夫化。己合甲木化土成局,土神钟秀、 禄源深厚。月中无化,取甲为官,丙为印,戌土上甲木成形, + 丙火合局。通月气,贵;不通,有刑冲破害者平常,己身虽吉, 父母早失。 + + 己日时逢甲戌,妻从夫化为佳。库财专待钥匙开,壬申丑神通泰。 + 父母夭孤刑克,雁行花果难谐。若逢时运一时来,家业兴 隆亨快。 + + 己丑日甲戌时,克父太旺。辰月生,土厚。居巳午末申,临官、帝旺,吉。亥戌寅卯,土病死,凶。酉辰,三、四品, + 贵,中年退闲。亥木火运,六、七品,贵。 + + 己卯日甲戌时,丙丁午戌年月,干有庚辛制伏官煞,生山明水秀地方,官至二、三品。未酉丑月,行土火运,四、五品。 + 午月、东北运,大贵。子运、木火运,风宪。辰巳有倚托者, 极品。 + + 己巳日甲戌时,寅午戌月,金神入火乡,贵显。亥戌年月,官居守令,极有声名。子月、木火运,极品。 + + 己末日甲戌时,克陷遭刑。寅午年月,三、四品,贵。戌月、东南运,五品。纯辛卯年月,刑。 + + 己酉日甲戌时,辰丑刑冲,财源益进。酉戌相害,名利中平。子月,己贵。寅月,官印,行印运,贵。纯乙酉年月,顽暴。一云孤独离乡。 + + 己亥日甲戌时,通土气月,要行木运;通水木月,要行身旺运,俱贵。甲己化土气藏收,如逢匙钥福优游; 假若逢财财不聚,浑如木叶值深秋。 + ''', + + '己日乙亥':''' + 六己日生时乙亥,官藏煞见未为奇;逢金制煞方为吉,身不旺兮凶可知。 + 己日乙亥时,煞见官藏。己以甲为官,乙为鬼。亥上有明乙暗甲,为官煞混杂。柱中见辛制乙,去煞留官;通月气者,贵显。 + 亥上水旺土虚,漂流失业,见财不聚,成败进退;要身鬼两停,方吉。不通月气,通运气,亦吉。 + + 天元乙亥在时间,驿马长生不等闲; 身旺煞强骈福禄,功名显达自欢颜。 + 己日时逢乙亥,偏官喜遇正财。若逢身旺亦为佳,混杂天元减半。行藏进退无定,六亲雁侣兴衰。运行禄马自然来,富贵清闲自在。 + + 己丑日乙亥时,巳酉丑月,制煞留官,贵。午月,身旺,亦贵。子月、火运、七、八品,贵。卯未,透辛制乙,大贵。 + + 己卯日乙亥时,卯月,偏官格,煞重身柔,作弃命看。壬字暗逢,志气轩昂;柱有制伏,行土金运,官至三、四品。丑月,杂气。辰、巳,西运,金紫。亥月,水运,夭。 + + 己巳日乙亥时,寅午戌月,金神入火乡,贵。巳月、西北运,官至公卿。卯午,风宪。纯子亥年月,以财党煞,作弃看, 主大兵权。 + + 己未日乙亥时,无刑破混杂,清高、富贵,文学堪夸。 + + 己酉日乙亥时,春夏,显达;秋,制伏太过,贫儒;冬, 财旺。午巳戌年月,六、七品,贵。寅月,行金火运,四、五品,贵。 + + 己亥日乙亥时,年月透辛制,贵;无制,亦主特达。戌月, 风宪。已,亦贵。丑,土厚之宫,官至三品。一云自刑,多成败,晚富。 + ''', + '庚日丙子':''' 六庚日生时丙子,身鬼俱衰退神强;有托荣华无托贱,鬼逢生旺寿难长。 庚日丙子时,身鬼俱衰弱。庚以癸为伤,丙为鬼。子上庚死、丙火无气、癸水健旺。 若身有倚托,吉;无倚托,又行身衰鬼旺运,飘风夭贱。通火气月,要行西运,贵。身弱不然。 - + + 庚日相逢丙子时,伤官合局不为奇;双亲祖业难成就,燕寝鸾栖别立基。 + 庚日时逢丙子,刑官背禄安身。双亲克陷早难辛,雁侣不能和顺。废学经商发福,田庄后懒先勤。 + 家居财帛晚才成,先暗后明之命。 + 庚子日丙子时,贵。年月再子,并冲,午中丁为官,己为印,人飞天禄马格;柱无财官填实,主贵; 为僧道,一尘不染,万法皆成;为常人,有名有利,刑伤妻子。一说先贫后富。忌己巳月,破刑,贫。癸未月,孤单。巳亥月、刑。 庚寅日丙子时,春生,带财带煞,行金水运,金紫。夏,煞旺,大贵。秋,身旺,须行南运,贵。冬,身鬼俱弱,平常。 纯午年月,位至公卿。壬子,食前煞后随;一阳生后,丙火有气,贵极人臣。忌癸酉月,破败,凶。辛亥月,血光。甲子月,夭。 - + 庚辰日丙子时,月通木火气,行西运,妙。乙巳月,破败,刑。丁酉月,旺中刑,凶。己丑月,破败,凶。 庚午日丙子时,贵。时日相冲,忧伤妻子,运喜西南,通火木月气,风宪三四品。 秋生,丙火无气,难为子息。忌己巳月,破祖,凶。己亥月,被劫盗,凶。癸丑月,孤。 - + 庚申日丙子时,申月,生土厚地方,贵。辰未年月,行西运金,方吉。辛巳月,凶刑。辛亥月,孤夭。 庚戌日丙子时,春夏生。西南运;秋月、木火运,俱贵。忌乙巳月,凶、破。乙亥月,官灾多,凶刑。 己丑月,破败,凶。戊戌月,恶死。 - 庚日相逢丙子时,伤官合局不为奇;双亲祖业难成就,燕寝鸾栖别立基。 - 庚日时逢丙子,刑官背禄安身。双亲克陷早难辛,雁侣不能和顺。废学经商发福,田庄后懒先勤。 - 家居财帛晚才成,先暗后明之命。 ''', - + '庚日丁丑':''' 六庚日生时丁丑,贵地逢官火太轻;木火运通轩冕客,不通独立只虚名。 - 庚日丁丑时,金重火轻。庚以丁为官,以己为印,丑上丁火气轻,己土正位。 若通木火气月,官印逢生旺,贵;不通,虚名而已。通火土生旺月,富;不通,运遇亦主名声。 - + + 庚丁相合丑时全,好象明蟾耀碧天;不遇刑克真稀奇,财官兴旺更长年。 + 庚日时逢丁丑,正官、财库相随。午未戌月福优余,庚取时逢金柜。金逢火而成器, + 必然荫子封妻。从来歌酒不相离,定主清闲乐意。 + 庚子日丁丑时,春夏,贵;秋平常;冬孤克。庚寅日丁丑时,魁元。寅卯午未亥月,清秀高命。 行午、未运,贵显。通火土年月,贵。 - + 庚辰日丁丑时,丑月,富而寿促。己,近侍,大贵。通火旺土生月,贵;不得,运遇亦富,有名誉。 - + 庚午日丁丑时,通土月气,贵;不,亦富,有名声。 - + 庚申日丁丑时,丑月,金火运,极品。辰巳午未戌月,官印两旺,贵。申、酉,身太旺,须行木火。 寅、卯,财太旺,须行金水。亥子,金寒水冷,须行火土运,贵。 - - 庚戌日丁丑时,春财旺;夏官旺;秋平淡;冬无力。 - 庚丁相合丑时全,好象明蟾耀碧天;不遇刑克真稀奇,财官兴旺更长年。 - 庚日时逢丁丑,正官、财库相随。午未戌月福优余,庚取时逢金柜。金逢火而成器, - 必然荫子封妻。从来歌酒不相离,定主清闲乐意。 + 庚戌日丁丑时,春财旺;夏官旺;秋平淡;冬无力。 ''', - + '庚日戊寅':''' 六庚日生时戊寅,火生金绝福高人;月通从革或秋降,却做皇家柱石臣。 庚日戊寅时,火生金绝。庚以丙为鬼,戊为倒食。寅上有明戊、合癸化火,庚金气绝。 若不通金旺月,无救助者,夭贱贫下。巳月,庚长生,丙健旺,身鬼俱强;运行西方,勇暴,武贵。 - 申酉丑戌月,金火合局,化鬼为官,更得身强运,贵。 - + 申酉丑戌月,金火合局,化鬼为官,更得身强运,贵。 + + 庚日寅时甚可夸,无刑克破显忧华;运来自有高人助,时至如添锦上华。 + 庚日戊寅时秀,编印倒食难收。少年未遇莫心忧,此命或贫或富。 + 时至发财发福,运来顺水行舟。月中金水更相投,无破功名成就。 + 庚子日戊寅时,寅午年月,登科显达。纯申,三、四品贵。丑月、金火运,公卿。 庚寅日戊寅时,月通火局或秋生,行身旺运,贵。庚子月,自死。年见辛酉,贫夭残疾。身衰见丙太旺,同论。 @@ -549,67 +1599,40 @@ 庚申日戊寅时,时日并冲,忧伤妻子。寅卯辰月、火金运。侯伯。春月、西南运,大贵。寅月,贵显不久。一云先刑后吉。 庚戌日戊寅时,贵。戌月,杂气财官印绶,贵。庚辰年,己卯月者,侯伯。 - - 庚日寅时甚可夸,无刑克破显忧华;运来自有高人助,时至如添锦上华。 - 庚日戊寅时秀,编印倒食难收。少年未遇莫心忧,此命或贫或富。 - 时至发财发福,运来顺水行舟。月中金水更相投,无破功名成就。 ''', - + '庚日己卯':''' - 六庚日生时己卯,胎生元命发因妻;柱中有托逢庚旺,财禄丰盈福寿齐。 - + 六庚日生时己卯,胎生元命发因妻;柱中有托逢庚旺,财禄丰盈福寿齐。 庚日己卯时,胎生元命。庚金卯上受胎,见己为生气印绶。庚以乙为财,卯有旺乙,因妻发福。 - 若柱旺丁,生月带禄者,贵;有倚托者,富。通生气财旺者,生财旺运者,俱贵。 - + 若柱旺丁,生月带禄者,贵;有倚托者,富。通生气财旺者,生财旺运者,俱贵。 + + 天元庚己卯时连,禄见文书富贵全;四柱无刑冲克破,贵人接引上青天。 + 庚日时逢己卯,财官运气亨通。若无刑冲定褒封,有破中年不顺。 + 雁行六亲难靠,自成家计无穷。时来发达显功名,自有高人引用。 + 庚子日己卯时,子卯相刑,忧伤妻子,子年月,贵。丑未,官至三品。一云破祖失土,大贵。 庚寅日己卯时,亥卯月,财星格,早荣早退。午戌,三合官局,干透金水,行西北运,吉。 庚辰日己卯时,孤。年月通木气及有倚托者,贵。 - + 庚午日己卯时,刑破。申子辰己酉丑,俱行东南运,贵。寅午戌亥卯未,须得西北运为佳。 - + 庚申日己卯时,卯月,财星格,不贵即富。丑巳年月,翰林清贵,官至亚卿。一云少贫,中年有小灾,克妻少子。 - - 庚戌日己卯时,少孤母贱,中年贵。卯酉辰丑月,官至公卿。 - 天元庚己卯时连,禄见文书富贵全;四柱无刑冲克破,贵人接引上青天。 - 庚日时逢己卯,财官运气亨通。若无刑冲定褒封,有破中年不顺。 - 雁行六亲难靠,自成家计无穷。时来发达显功名,自有高人引用。 + 庚戌日己卯时,少孤母贱,中年贵。卯酉辰丑月,官至公卿。 ''', - + '庚日庚辰':''' 六庚日生时庚辰,金火秋生气象纯;若有魁罡包贵贱,财官喜忌六官分。 - 庚日庚辰时,金水清白。六庚之中,庚戌庚辰为魁罡,怕见财官刑冲;不见,主为人粗豪暴勇而贵,见则祸患百出。 庚子。庚寅、庚午、庚申,喜见财官。生秋月,为人秀丽,不贵则富。若身不化,得甲乙丁透出,生火木分野,亦作财官论。 喜月气通运者,吉。 - - 庚子日庚辰时,申月生,井栏叉格。柱并运不见丙丁巳午寅戌字,贵。纯卯年月,位至公侯。 - - 庚寅日庚辰时,龙虎拱门。年月通火土者,贵。纯庚辰,王侯;不然,极凶。若年月遇木火,运再行,极品。 - - 庚辰日庚辰时,魁罡,年月不见财官并戌字,贵;冲破者富。申子年月作井栏叉,行西南运,吉。 - 纯庚辰,庚申或乙酉化金通无火气,凶徒小人。一云刑。 - - 庚午日庚辰时,自刑,金神入火乡。申月,行火木运,官可六品。 - - 庚申日庚辰时,子、申年月入井栏叉。柱、运不逢丙丁巳午字,贵。纯庚申、庚辰,行西北东运,武职极品。 - - 庚戌日庚辰时,魁罡,土厚地方,官高禄重。子月、西南运,贵。寅辰年月,平常。 六庚时辰仔细推,辰中印库钥匙开;四柱若有冲刑字,安然福禄自天来。 庚日庚辰时正,地支三合为魁。就中卯戌库门开,无破紫袍金带。 巳午丙丁减副,谋为财去财来。妻重子晚命中该,富贵清闲自在。 - ''', - - '庚日庚辰':''' - 六庚日生时庚辰,金火秋生气象纯;若有魁罡包贵贱,财官喜忌六官分。 - 庚日庚辰时,金水清白。六庚之中,庚戌庚辰为魁罡,怕见财官刑冲;不见,主为人粗豪暴勇而贵,见则祸患百出。 - 庚子。庚寅、庚午、庚申,喜见财官。生秋月,为人秀丽,不贵则富。若身不化,得甲乙丁透出,生火木分野,亦作财官论。 - 喜月气通运者,吉。 - 庚子日庚辰时,申月生,井栏叉格。柱并运不见丙丁巳午寅戌字,贵。纯卯年月,位至公侯。 庚寅日庚辰时,龙虎拱门。年月通火土者,贵。纯庚辰,王侯;不然,极凶。若年月遇木火,运再行,极品。 @@ -618,22 +1641,22 @@ 纯庚辰,庚申或乙酉化金通无火气,凶徒小人。一云刑。 庚午日庚辰时,自刑,金神入火乡。申月,行火木运,官可六品。 - + 庚申日庚辰时,子、申年月入井栏叉。柱、运不逢丙丁巳午字,贵。纯庚申、庚辰,行西北东运,武职极品。 庚戌日庚辰时,魁罡,土厚地方,官高禄重。子月、西南运,贵。寅辰年月,平常。 + ''', - 六庚时辰仔细推,辰中印库钥匙开;四柱若有冲刑字,安然福禄自天来。 - 庚日庚辰时正,地支三合为魁。就中卯戌库门开,无破紫袍金带。 - 巳午丙丁减副,谋为财去财来。妻重子晚命中该,富贵清闲自在。 - ''', - '庚日辛巳':''' 六庚日生时辛巳,偏官合刃自身生;为人刚毅妻财损,运到金乡贵禄享。 庚日辛巳时,阳刃偏官。庚以辛为刃,丙为杀。明辛暗丙,合煞为权。通身旺月,贵;不通,无贵,寿考。 + 庚日相逢时已生,为人福禄依稀平;刑冲破害柱如有,自立自成免祸惊。 + 庚日时临辛巳,败财暗鬼偷寻。财去财来小人侵,祖父家基难荫。 + 外合重行发福,兄弟雁行无音。妻迟子晚喜开心,先苦后荣之命。 + 庚子日辛巳时,春富;夏、秋贵;冬贫。辰戌丑未年月,印绶,行西南运,贵。 - + 庚寅日辛巳时,巳酉丑月,身旺,贵。煞旺身弱月,贫。纯申年月,大贵悠久。亥月,东南运、主有权贵。 庚辰日辛巳时,巳酉丑月,身旺,贵。煞旺身弱月,贫。纯申年月,大贵悠久。亥月,东南运、主有权贵。 @@ -645,30 +1668,180 @@ 庚申日辛巳时,刑。巳酉丑月,特达。春夏,木火旺,财官得地,吉。辰戌丑未,印绶,行南运,贵。 庚戌日辛巳时,年月遇财,吉。午未,行东南运,文职操权,恐无好终。寅申、翰林宰辅;若行火运,亦难善终。 + ''', + + '庚日壬午':''' + 六庚日生时壬午,官印福宫聚食神; 金士助身须显贵,日逢火旺命难通。 + 庚日壬午时,官印健旺。庚以丁为官,己为印,壬为食。午上壬食无气,丁巳禄旺。通金土月气扶身者,贵。通火气, 官贵太重,反化为鬼;庚金柔弱,不能作福,运气扶身,亦贵。 + + 庚日时临壬午,支中官印俱藏。贵人禄马更同乡,祸患潜消福长。 + 克破刑冲不吉,柱中更忌空亡。将星天乙主荣昌,中暮家业兴旺。 + + 庚子日壬午时,时日并冲,忧伤妻子。通金气,贵。火气,大贵,但多忧劳禄。 + + 庚寅日壬午时,辰戌丑未巳申酉月,身旺,俱贵。寅午,火旺,运气再遇,寿促;不然,残疾。 + + 庚辰日壬午时,食神旺,善饮食,有操持,发即死。 + + 庚午日壬午时,寅午戌月、金柔火旺,畏缩残疾。亥子午月、行木火运,贵。 + + 庚申日壬午时,禄马同乡,最吉。如午未年月,位至台阁。卯辰已,贵。戌月、行火土运,清虚冷职。 + + 庚戌日壬午时,卯月,正财,吉。未月,杂气财官,贵。 辰丑月同。 + + 壬庚会合临午,无破无冲福自来;从此名利皆有望,贵人举荐上天阶。 + ''', + + '庚日癸未':''' + 六庚日生时癸未,官星魁制权星退; 柱中见己不透丁,却能显达得官位。 + 庚日癸未时,印财库,庚以乙为财,未中入库,用丁为官, 己为印,未中己丁却有明癸制之。柱有己制癸,不透丁字,居官显达。若无己透丁,为祸百端。通火土运气,贵。 + + 庚日未时库有财,钥匙开处独为魁; 运至财旺生官地,富贵荣华不用猜。 + 庚日时逢癸未,喜逢丑戌荣财。伤官背禄库难开,祖业盈全有碍。 父母夭孤空克,妻要迟子晚和谐。运行吉地免生灾,官旺财乡通泰。 + + 庚子日癸未时,年月无丁透露,有己土制伏癸水者,贵。 + + 庚寅日癸未时,贵。辰戌丑未月,高。夏富。岁运同,巳 酉申月,身旺,大贵。 + + 庚辰日癸未时,魁罡日。辰中有土制癸。年月无丁;贵。卯月,金水运,七品贵。 + + 庚午日癸未时,贵。酉申巳亥年月,总领兵戎,官至二品。先虚后实。 + + 庚申日癸未时,酉月,武贵,初年剥权。年月寅午戌、申子辰二局相参,贵。 + + 庚戌日癸未时,戌月、东方运,贵。辰月卯年,大贵。秋 生最吉。夏,须行西北运。方吉。 + ''', + + '庚日甲申':''' + 六庚日生时甲申,归禄带财格最纯; 巳丙与寅柱不见,功名富贵自然臻。 + 庚日甲申时,日禄居时。庚金申上见禄,甲为偏财。柱中不通丙火,巳寅冲刑,主贵有平常。岁运同。 + + 日禄居时喜遇申,柱中嫌巳丙和寅; 时来若遇高人荐,柳红桃红万里春。 + 庚日申时为主,是名财禄相扶。生长清闲好诗书,禀性无嗔无怒。 运拙农商工贾,时来职位迁除。高人见喜小人扶,无破青云有路。 + + 庚子日甲申时,时犯日禄,见财星,柱无巳寅丙,富贵双全。辰戌丑未土能生金,吉。寅午戌,平常。申酉,行火木运、贵。寅亥,三、四品,贵。卯,刑。子,多凶。 + + 庚寅日甲申时,寅、亥月,官至三品。 + + 庚辰日甲申时,日魁罡,又归禄,俱不喜财官、柱无寅午戌丙丁巳字,贵。 + + 庚午日甲申时,贵。通身旺月,无丙巳寅午丁,伤破,贵。 + + 庚申日甲申时,贵。无卯午未戌丙丁字,贵。子丑月,金水运,文贵。余见庚申、甲申,专禄归禄。 + 坚金非火不能锻炼, 故巳午戌月生者,多贵。看归禄有七法,勿以为嫌。财月最吉。 + + 庚戌日甲申时,寅巳午戌月,妻贤子孝,贵。《神白经》运:金水带印,主清闲之福。 + ''', + + '庚日乙酉':''' + 六庚日生时乙酉,金中相会化真金; 柱中无火多刚缺,有火相成贵气荣。 + 庚日乙酉时,气化真金。庚以乙为财,辛为刃,酉上财绝刃旺。若化真金,柱中无火,金太刚则缺;行火运,造化抑扬, 得合中道。 + 庚辰日最好年月带马,三、四品贵,但主少子或不肖。 + + 天元化合酉时生,生月之中见土亨; 荣遇财官皆显达,功名利禄沐恩荣。 + 庚日时逢乙酉,就中合化真金。财官运步福源生,文秀聪明为甚。不遇亥子克妻;贵贱举失胸襟。凡事后吉先多凶,人品显达之命。 + + 庚子日乙酉时,主富。月通火气,贵:不通,平常,运通亦称意。卯亥年月,帅阃。一云破祖刑凶。 + + 庚寅日乙酉时,刑。寅午戌吉。申子,凶暴。 + + 庚辰日乙酉时,刑。寅卯午年等月,二品权贵。戌亥大贵。《神白经》云:化金,主福厚。 + + 庚午日乙酉时,刑,中贵。寅午戌亥卯未二局,贵。已, 亦吉。 + + 庚申日乙酉时,真刑。寅午戌,大贵。已酉丑,中贵。申子辰,富。亥卯未,凋零,一云财吉。 + + 庚戌日乙酉时,刑后发。寅午戌,官星明朗,贵。亥卯未, 富或五、六品贵。已酉丑刃旺持权,主发迹于疆场,武臣最宜, 文臣亦主掌兵权,究竟受羊刃之祸。 + ''', + + '庚日丙戌':''' + 六庚日生时丙戌,金火持争事不详; 身旺月通印绶吉,不通无救祸难当。 + 庚日丙戌时,金火持争。庚以丙为鬼,丙火、戊土合局,金无气。若通身旺印,卯月有救助者,贵;反是平常或夭贱。 + 运通亦吉。庚属大肠,若丙丁旺甚,主痔漏、脏毒、脓血之灾。 + + 戌时官库最为魁,丑戌相刑库自开; 初主中年无显达,没年晚景称心怀。 + 庚日时逢丙戌,偏官仓库埋藏。就中鬼贼不相当,身弱钱财虚荡。运旺身强发福,雁行骨肉参商。妻重子晚免刑伤,老 景封侯拜相。 + + 庚子日丙戌时,春,偏官用财,吉。夏,煞旺身衰,凶暴。秋,身煞俱旺。已酉丑月,西方运,腰金衣紫。寅亥子月,金绝病死,多贫贱。一云聋哑、犬狼伤。 + + 庚寅日丙戌时,申子辰月,偏官有制,吉。秋生,身煞俱旺,有禄权。纯午,孤贫无倚,不然残疾。丑午行西南,公卿以上贵。纯寅,亦贵。 + + 庚辰日丙戌时,时日相冲,忧伤妻子。月通金水气,贵。木火气重者,艰辛,贫夭或残疾。 + + 庚午日丙戌时,申酉亥丑、富,贵三品。已午未申,透出壬字,艮坎乾方运,卿相有寿。 + + 庚申日丙戌时,戌亥年月,东南运,贵。申月,大贵。 + + 庚戌日丙戌时,辰戌丑未、印绶生助,吉。申子辰,偏官有制,贵。月通金气,不透壬字,行北运,贵。 + ''', + + '庚日丁亥':''' + 六庚日生时丁亥,官星失地自身衰; 不通月气难成福,若见魁罡却妙哉。 + 庚日丁亥时,庚以甲为财,壬为食,丁为官。亥上丁火无 气,壬旺甲生,庚金失地,难任财食。 + 若不通身旺月,不能成福;通月气、有阴土扶身者,发财。官星有助,稍贵。庚戌, 庚辰此二日魁罡,不宜财官生旺;时逢丁亥,反贵。 + + 丁亥时逢庚日排,重重喜色照朱扉; 桃红烂漫日时绽,一阵春风自显威。 + 庚日时逢丁亥,柱中暗合三奇。要知子旺并三妻,父母雁行可美。癸已戊辛不遇,文章博览多知,无冲无破贵人提,终 +末亨通吉利。 + + 庚子日丁亥时,贵。申子辰月,伤官、劳碌。卯月、金火 运、五六品贵。 + + 庚寅日丁亥时,平,初贫,中秀,末主富旺。辰戌年月,贵显。申酉亥卯已午年月,干透乙已者,大贵。 + + 庚辰日丁亥时,纯未,显达。已午,西北运,风宪、金紫。亥卯、金紫,有权。申月,建禄,最吉。 + + 庚午日丁亥时,贵。辰戌丑未月,土能生金,荣显。申亥酉月,行木火运,极品。 + + 庚申日丁亥时,秋生,南运,贵显;北运,平常。 + + 庚戌日丁亥时,辰已午月,官煞虽混,亦主武贵。丑月,西运,郎官。辰月,西北运,方面。 + ''', - 庚日相逢时已生,为人福禄依稀平;刑冲破害柱如有,自立自成免祸惊。 - 庚日时临辛巳,败财暗鬼偷寻。财去财来小人侵,祖父家基难荫。 - 外合重行发福,兄弟雁行无音。妻迟子晚喜开心,先苦后荣之命。 - ''', - '辛日戊子':''' 六辛日生时戊子,印绶学堂坐食神;不见丙丁同午破,必是荣华贵显人。 辛日戊子时,六阴朝阳。辛金子上长生学堂。辛以戊为印。癸为食,时上明戊暗癸, 柱中不见丙丁午字,冲开;通身旺月,大贵;犯者不贵。不通月气,通运,亦贵。 + + 天元六辛子时生,春天花开灿烂明。丙已午丁如破坏,功名难望晚方成。 + 辛日时逢戊子,六阴会合朝阳。金神印绶显威光,相助一身荣旺。已午逢之减福,丙离雁侣尊堂。妻子勤助旺家庄、无破寒门将相。 + + 六辛日见戊子时,谓之天庭清显气。辛酉辛亥得之,最高。忌丙寅月,死不全尸。丙申月,失乡恶死。丁酉月,失亡恶死。 + 辛亥日戊子时,不贵则富。亥月,无官,伤官伤尽,发福子少。春夏,亥子丑,木火运局,金紫风宪。 + 辛丑日戊子时,丑月,杂气财官,贵。纯丑,儒职。纯辰、行西运,都宪。酉月,东北运,贵。忌庚寅月,刺面,凶。癸 未月,受刑。癸丑月。破败孤凶。 - 天元六辛子时生,春天花开灿烂明。丙已午丁如破坏,功名难望晚方成。 - 辛日时逢戊子,六阴会合朝阳。金神印绶显威光,相助一身荣旺。已午逢之减福,丙离雁侣尊堂。 - 妻子勤助旺家庄、无破寒门将相。 - ''', - + 辛卯日戊子时,春生,寅贫、卯贵。夏清贵。秋羊刃,无益。冬富,丑月尤吉。辰戌未月,财官印绶、俱吉。 + 《神白经 》云:金火化,主贵。忌辛卯月,父母凶死。辛已月,大凶。壬申月,尸不全死。 + + 辛已日戊子时,寅已午月,正官,贵显。亥子,伤官,子 少妻多。卯戌,五品贵。 + 《神白经》云:金化象,主贵。忌丙寅月,刑、平。乙已月,先贫。丁酉月,夭。 + + 辛未日戊子时,贵。寅已午酉年月,火木运,贵。亥子, 翰苑。辰戌丑未,杂气财官印,俱吉。忌庚申月,尸不全死。壬子月,孤凶。癸丑月,凶刑死。 + + 辛酉日戊子时,子酉月生,无丙丁火,不行南运,三、四 品贵。伤妻子;武职权重。 + 《神白经》云:金火化,主贵,破祖方发。忌壬寅月,凶死。辛已月,大败,祖凶。庚戌月,凶死。 + ''', + '辛日己丑':''' 六辛日生时己丑,金土持争势不安;年月财官相救助,免交贫困受饥寒。 辛日己丑时,金土相争。辛以己为倒食,丑上有明己暗辛。岁月无财官救助者,贫困;得财官运,亦吉。 己丑时逢辛日险,财官埋没未为奇;六亲骨肉多刑害,年月冲开富贵推。辛日时临己丑,总由倒食淹留。 就中金柜紧监收,午未戌开成就。甲丙卯寅发福,癸壬亥子漂流。少年谋望事难周,中未前程自有。 - ''', + + 辛丑日己丑时,孤浊滞生。申酉月,金旺,运行火乡,疏通,刑伤妻子;为僧道,贵。纯丑,西南运,大贵。 + + 辛卯日己丑时,寅卯亥未等月,财星格,南方运,贵。辰戌丑未,印绶,南方运,吉。 + + 辛已日己丑时,丑已申酉月生,金多克木,损伤妻子;僧道,贵。寅卯辰。月,南运,贵。 + + 辛未日己丑时,寅卯未月,财星格。已午,官显。 + + 辛酉日己丑时,破祖。已酉丑月,金多克木,俊俏有财, 难为妻子。寅午月,近侍,贵。 + + 辛亥日己丑时,寅已午月,官星明朗,立计成象。卯未, 财局,富贵。未戌,冲,吉。 + 申、子、辰月月,金水氵亟秀, 佳。酉建禄、行木火运、吉。纯亥,金水氵亟秀,贵。 + ''', '辛日庚寅':''' 六辛日生时庚寅,财旺生官遇贵神;金木局中通月气,必为荣贵富豪人。 @@ -677,8 +1850,20 @@ 六辛之日遇寅时,财旺生官互换推;运拙利名应蹇滞,若行财禄更无虞。 辛日庚寅时遇,弟兄骨肉生疏。双亲祖业靠难成,鸳侣中年违镜。 亥癸坎壬减福,丙丁巳午驰名。春生冬产贵人钦,中末荣华之命。 - ''', - + + 辛丑日庚寅时,春贵;夏官旺;秋显达;冬吉。丑月、南运,风宪或武贵。一云发即风疾。年月酉、申金,无火气、贫夭。 + + 辛卯日庚寅时,午未亥子,俱贵。寅卯申酉,六、七品贵。 + + 辛巳日庚寅时,春贵;夏官禄,行西北运,大贵;秋身旺;冬暴狠。一云刑后有财。 + + 辛未日庚寅时,已未丑月,名标金标,妻贤子孝,晚年风疾。寅卯午戌,俱吉。 + + 辛酉日庚寅时,贵。春财聚;夏官禄成;秋身旺;亥子丑戌午酉等年月,俱贵。 + + 辛亥日庚寅时,贵,主有暗疾。干透丙,发。午酉寅亥年月,南方运,贵。 + ''', + '辛日辛卯':''' 六辛日生时辛卯,妻子难为遇比肩;秋产冬生贫下格,丙临寅马却当权。 辛日辛卯时,比肩分财。辛以乙为财,卯上乙旺,遇比分夺,损伤妻子。 @@ -686,8 +1871,20 @@ 辛日时逢辛卯,二辛分夺妻财。雁行鸳侣少合谐,独立自成无碍。 年月财星生旺,忻然禄自天来。运行比劫事沉埋,木火运中通泰。 - ''', + 辛丑日辛卯时,春、夏生土厚地方,富贵。秋,克妻刑子。冬、艰辛。寅巳午月,近待,贵。甲戌年月、木火运,风宪。 + + 辛卯日辛卯时,寅午戌月,财官双美,贵显。卯酉申辰年月,近侍,贵;见官印财星,妙。一云先苦,中年大发。 + + 辛巳日辛卯时,春,财旺;夏、官旺、秋,身强;冬,懦弱。巳酉年月,行木火运,贵戚。申月、水火运,金紫。巳月、西北运,风宪。 + + 辛未日辛卯时,纯未、丁年月,虽大权贵,不善终。寅巳亥,纯吉。 + + 辛酉日辛卯时,出身孤苦,中年获福,末年封妻荫子,贵。巳月,官印逢天德,贵当一品。丑月、木火运、中贵。申酉亥年月,东南运,风宪。 + + 辛亥日辛卯时,春夏,财官双美,贵显。秋冬,背禄逐马、劳碌反复。纯亥,金水氵亟秀,多发高科。辰戌,吉。丑未, 尤吉。 + ''', + '辛日壬辰':''' 六辛日生时壬辰,伤官伤尽倍精神;四柱火虚防克害,九流技艺卜医人。 辛日壬辰时,暗金沉水底。辛用丙为官,壬为伤官,辰水库,丙辛无气,壬水合局。 @@ -696,8 +1893,20 @@ 六辛日干时壬辰,锁闭财官事未能;不通钥匙兼压伏,自古难发少年人。辛日壬辰时遇,伤官伤尽为奇。 祖业父母早难为,雁行分飞无意。春夏财官生旺,东南方运施为。自谋自立作家资,不得亲人之力。 - ''', - + + 辛丑日壬辰时,春,财旺,妻贤子孝。夏,伤官见官,然亦多富。秋吉。冬,孤克,多贵。 + + 辛巳日在辰时,春、显达;夏,平常;有名利,主暴虐。酉月、行东运,贵。戌未,四库全,最贵。纯未,杂气财印。丑未,冲开,主有权贵。 + + 辛卯日壬辰时,春、伤官生财。夏,行藏反复,或凶暴。午未亦奇。秋,申酉身旺,得火则吉。冬,亥子伤官伤尽,有木土为妙;贵重轻高,未免刑克。辰戌丑未主武贵。 + + 辛未日壬辰时、身孤。春生,财星格,吉。夏,劳碌。秋, 贵。冬,伤官伤尽,为奇。 + + 辛酉日壬辰时,春,富贵双全。夏好。秋身旺,贵。冬,白丁;子月,辛生地,学堂,主文学。年月火济,贵。甲戌月, 三品。 + + 辛亥日壬辰时,贵。春,财旺扶身。夏吉。秋身旺,好。冬,伤官伤尽,自立自成。卯未年月,贵。 + ''', + '辛日癸巳':''' 六辛日生时癸巳,贵气无伤官印强;月气有通兼倚托,早年荣贵姓名香。 辛日癸巳时,官印扶身。辛以丙为官,戊为印,癸为食神。 @@ -706,135 +1915,286 @@ 癸巳时逢辛日干,柱中独喜显财官;运行禄马无刑地,金榜题名步御銮。 辛日时临癸巳,春生财旺 基。丙丁午年最为奇,破克刑冲不利。 壬癸庚申无破,功名富贵为的。妻贤子孝两相宜,刑破巳时不利。 - ''', - + + 辛丑日癸巳时,凶,别父母发福。春夏,吉。秋冬,凶暴。 一云化贵、戒酒。 + + 辛卯日癸巳时,春夏,身弱寿促。秋,身强、劳力辛苦。如月气火木,三、四品贵。 + + 辛巳日癸巳时,化贵。子午年,寅午戌月,贵,亥卯未,清贵。申子辰,无义之人。辛巳癸巳,两干不杂寅辰,透丙, 俱主极贵。丑酉三合,亦吉。 + + 辛未日癸巳时,寅午戌月,高命。巳酉丑,身旺平稳。申 子辰,白丁。亥卯未,清贵。 + + 辛酉日癸巳时,贵显,酒色重。寅卯,财旺,吉。丑,三合全,富贵。 + + 辛亥日癸巳时,时日并冲,忧伤妻子。春财旺。夏,吉。秋,平。冬,凶暴。酉午年月,木火运,风宪、都堂。 + ''', + '辛日甲午':''' - 六辛日逢甲午时,暗鬼枭神真可畏;若无倚托反劳生,莫道六辛逢马贵。 - 辛日甲午时,鬼旺身衰。辛用丁为鬼,己为倒食,甲为财。甲午木死则神无气,丁己健旺,虽见午为天乙贵,平生反复; - 纵通旺气,亦贵不永。若生火土月,西方运,贵。 - - 六辛日干时甲午,财神无气不相当;春生木旺财官运,一路滔滔姓字香。 - 辛日时临甲午,妻财无气身衰。干强火旺为鬼胎,火重金柔炼坏。 - 最忌用神伤损,金沉海底生灾。无刑无破称心怀,贵重光明广大。 - ''', - + 六辛日逢甲午时,暗鬼枭神真可畏;若无倚托反劳生,莫道六辛逢马贵。 + 辛日甲午时,鬼旺身衰。辛用丁为鬼,己为倒食,甲为财。甲午木死则神无气,丁己健旺,虽见午为天乙贵,平生反复; + 纵通旺气,亦贵不永。若生火土月,西方运,贵。 + + 六辛日干时甲午,财神无气不相当;春生木旺财官运,一路滔滔姓字香。 + 辛日时临甲午,妻财无气身衰。干强火旺为鬼胎,火重金柔炼坏。 + 最忌用神伤损,金沉海底生灾。无刑无破称心怀,贵重光明广大。 + + 辛丑日甲午时,未申年月,四柱有利害,虽富寿夭。通金,虽贵不永。 + + 辛卯目甲午时,卯月,武贵。寅戌,破祖;不然,残夭。巳午七、八品贵。运同。 + + 辛巳日甲午时,平。寅午戌,官旺,吉。申子辰、平常。卯戌年,官印双全,公候。 + + 辛未日甲午时,申子辰,偏官有制,吉。丑戌,方面。未 月。贵。 + + 辛酉日甲午时,春,财旺;夏,官贵,俱吉。秋,身强,虽富不永,冬,平常。 + + 辛亥日甲午时,亥子年月,金水氵亟秀,文学堪夸。辰戌丑未、杂气财官,贵显。 + ''', + '辛日乙未':''' - 六辛日生时乙未,火木相成金不畏;月通金气与春荣,财旺生官身自贵。 - 辛日乙未时,天财入库。辛以乙为财,未上入库;己为倒食,丁为正鬼; - 未上有暗丁,己被明乙制伏,不能为害。若通巳酉丑月者,贵,通火,行西运;通金,行南运,俱贵。 - - 未时辛日库门开,卓立家成自发财;金木运中身旺吉,几经险遇福重来。 - 辛日时逢乙未,库中透出偏财。运行木金忌身衰,丑戌之运通泰。 - 经历初年发福,鸳帏抵敌无灾。荣华富贵命中排,无破为官清泰。 - ''', - - '辛日丙申':''' - 辛日生时遇丙申,月通金火转精神;化成金水逢金地,聚福能为富贵人。 - 辛日丙申时,丙辛化水,申上长生。若月通巳酉丑金气者,精神秀丽,文章聚福。 - 通火气旺、有倚托者,贵。辛酉、辛未最妙,不成化象。申上官星无气,平常衣禄。 + 六辛日生时乙未,火木相成金不畏;月通金气与春荣,财旺生官身自贵。 + 辛日乙未时,天财入库。辛以乙为财,未上入库;己为倒食,丁为正鬼; + 未上有暗丁,己被明乙制伏,不能为害。若通巳酉丑月者,贵,通火,行西运;通金,行南运,俱贵。 + + 未时辛日库门开,卓立家成自发财;金木运中身旺吉,几经险遇福重来。 + 辛日时逢乙未,库中透出偏财。运行木金忌身衰,丑戌之运通泰。 + 经历初年发福,鸳帏抵敌无灾。荣华富贵命中排,无破为官清泰。 + + 辛丑日乙未时。刑。亥卯未寅月,财旺生官不贵则富。辰戌丑子,俱吉。 + + 辛卯日乙未时,亥卯未月,财盛生官,吉。 + + 辛巳日乙未时,月通金火,贵。运通,亦贵。 + + 辛未日乙未时,寅卯未年月,财旺生官,名高禄重。通火 气,行西运;通金气,行南,俱吉。 + + 辛酉日乙未时,月通火气,行东运,贵。辰戌丑未,最吉。亥卯,贵显不久。秋生,身太旺,财官无气,凶夭。 + + 辛亥日乙未时,亥卯未月,财星格。吉。秋冬,孤独。辰、丑,近侍三品。 + ''', - 辛日良时遇丙申,天元化合得其真;冬生若也无刑破。贵显当登要路津。 - 辛日丙申时遇,长生禄马希奇。天元化合显光辉,职重名高威势。 - 君子文章上立,常人荣旺家基。生时真定却无亏,运喜西南东地。 - ''', + '辛日丙申':''' + 辛日生时遇丙申,月通金火转精神;化成金水逢金地,聚福能为富贵人。 + 辛日丙申时,丙辛化水,申上长生。若月通巳酉丑金气者,精神秀丽,文章聚福。 + 通火气旺、有倚托者,贵。辛酉、辛未最妙,不成化象。申上官星无气,平常衣禄。 + + 辛日良时遇丙申,天元化合得其真;冬生若也无刑破。贵显当登要路津。 + 辛日丙申时遇,长生禄马希奇。天元化合显光辉,职重名高威势。 + 君子文章上立,常人荣旺家基。生时真定却无亏,运喜西南东地。 - + 辛丑日丙申时,化贵。少年蹇剥,中贵显。亥月,作化气看。吉。寅午戊巳未月,官星有气;春,财旺,俱吉。 + + 辛卯日丙申时,化贵。寅巳午未戌酉亥月,官星明朗,山明水秀,登科荣贵。通士气,亦贵。一云少蹇、中、末好。 + + 辛巳日丙申时,见血则福;又云贵中失。申未年月,身厚, 妻重子孝,武职三品。 + + 辛未日丙申时,因贵人门下得富。春,清贵。夏,平常。秋,富。冬,大贵寿促。《神白经》云:金水乖合,又化水,主贵。 + + 辛酉日丙申时,寅巳午戌月,官旺,荣贵。《神白经》云:水化主贵。 + + 辛亥日丙申时,发福,防孤克带疾。通金气,主人秀丽福厚。通水气,大贵。 + ''', + + '辛日丁酉':''' - 六辛日生时丁酉,鬼破禄无祸百端;倚托身强方断吉,月通制伏是偏官。 - 辛日丁酉时,火金持争。辛金酉上健旺,见丁为正鬼;酉上丁长生,破禄,不成其福,反复成败。 - 身强通月气有制伏者,作偏官论;更行身旺运,贵。通金气无丁,身强,行南运,大贵。 - - 酉时辛日等同论,出户相迎喜事新;不遇刑冲空克破,何愁富贵不加身。 - 辛日时临丁酉,偏官合局相投。丙、丁重见主淹留,嗣息女多男少。 - 祖业残花秋暮,游人皎月云收。身强官旺福优游,运至财官大有。 - ''', - + 六辛日生时丁酉,鬼破禄无祸百端;倚托身强方断吉,月通制伏是偏官。 + 辛日丁酉时,火金持争。辛金酉上健旺,见丁为正鬼;酉上丁长生,破禄,不成其福,反复成败。 + 身强通月气有制伏者,作偏官论;更行身旺运,贵。通金气无丁,身强,行南运,大贵。 + + 酉时辛日等同论,出户相迎喜事新;不遇刑冲空克破,何愁富贵不加身。 + 辛日时临丁酉,偏官合局相投。丙、丁重见主淹留,嗣息女多男少。 + 祖业残花秋暮,游人皎月云收。身强官旺福优游,运至财官大有。 + + 辛丑日丁酉时,高平稳。酉月、土木运,方面。戌亥子巳未年月,大贵。 + + 辛卯日丁酉时,时日并冲。月通金气,不透丙丁,南方运,贵。 + + 辛巳日丁酉时,平。亥月,反复不定。午月,偏官带疾,显达寿促。子月,贵戚。一云有财有喜,寿不过三十一。 + + 辛未日丁酉时,不贵则富。月通金气,无丙丁字,行南运, 贵。 + + 辛酉日丁酉时,年月通金气,吉。丑月,西方运,风宪。寅午戌,贵。 + + 辛亥日丁酉时,贵。丑寅卯酉年月;近待、金紫。 + ''', + '辛日戊戌':''' - 六辛日生时戊戌,印绶生身坐禄堂;有托福人难靠祖,不通月气是平常。 - 辛日戊戌时,禄同印堂同居。辛以戌为禄堂,戌上有明戊为印绶; - 以丙、丁为官,戌上戊土正位,丙、丁火局。若有倚托通月气者,难为祖业。不通,平常。 - - 辛日戌时财库闭,如开须待丑辰来;月中甲丙天干透,富贵荣华不用猜。 - 辛日时临戊戌,五行财禄荣昌。柱中辰、戌两相当,名曰钥匙开藏。 - 火水光辉发达,空亡锁闭如常。运行财地并官乡,无破天然福相。 - ''', - + 六辛日生时戊戌,印绶生身坐禄堂;有托福人难靠祖,不通月气是平常。 + 辛日戊戌时,禄同印堂同居。辛以戌为禄堂,戌上有明戊为印绶; + 以丙、丁为官,戌上戊土正位,丙、丁火局。若有倚托通月气者,难为祖业。不通,平常。 + + 辛日戌时财库闭,如开须待丑辰来;月中甲丙天干透,富贵荣华不用猜。 + 辛日时临戊戌,五行财禄荣昌。柱中辰、戌两相当,名曰钥匙开藏。火水光辉发达,空亡锁闭如常。运行财地并官乡,无破天然福相。 + + 辛丑日戊戌时,刑害。辰戌丑未,印绶,行南运,大贵。寅巳,正官,贵。子午卯酉,武职风宪。 + + 辛卯日戊戌时,刑害,饕餮。亥,卯月,木火运,五、六品贵。 + + 辛巳日戊戌时,辰戌丑未月,印绶,文贵少病;生土厚分 野,贵。戌月,行木火运,风宪。 + + 辛未日戊戌时,凶恶狠暴,忧伤妻子。寅巳午戌丑月,贵。申子辰亥,金水氵亟秀,尤贵。一云克父母,身旺,中年富。 + + 辛酉日戊戌时,凶刑。巳酉丑辰戌未年月,魁元,卿、尹之命。 + ''', + '辛日己亥':''' - 六辛日生时己亥,背禄剥官反破伤;如作飞天禄马贵,失时无合空忙忙。 - 辛日己亥时,飞禄合局。辛以丙为官,亥上有旺壬伤,故官无气;如再得亥月或亥日,以亥冲出巳中丙火为官星。 - 若是辛西、辛丑合局,贵;其余辛无合。不通月气,无倚托,贫下;有倚托,吉。 + 六辛日生时己亥,背禄剥官反破伤;如作飞天禄马贵,失时无合空忙忙。 + 辛日己亥时,飞禄合局。辛以丙为官,亥上有旺壬伤,故官无气;如再得亥月或亥日,以亥冲出巳中丙火为官星。 + 若是辛西、辛丑合局,贵;其余辛无合。不通月气,无倚托,贫下;有倚托,吉。 + + 辛日天干己亥时,枭神背禄主灾虞;无冲发福亦不重,禄马飞天贵自殊。 + 辛日时临己亥,枭神背禄同宫。好如缺月被云龙。壬巳甲寅无用。父母完全不睦,残花结果防风。若无克破与刑冲,飞天禄马福重。 + + 辛丑日己亥时,辰戌丑未及寅卯月生,作飞天禄马,贵。未月,金水运,金紫方面。 + + 辛卯日己亥时,寅卯亥未月,财旺生官,终身有庆。巳酉丁年月,贵。 + + 辛巳日己亥时,填实巳字,不入飞天格,作官印论,主父母竭力扶持而后富贵。 + + 辛未日己亥时,贵。亥卯未寅月,金能克木,为财盛生官,名利贵显,巳午年月,富贵。秋生,透丙,亦吉。 + + 辛酉日己亥时,辰戌丑未、杂气财官,吉。纯亥,冲巳中丙火为官,贵。 + + 辛亥日己亥时,年月再亥,飞天禄马,三、四品,贵;武职极品;侯、伯。寅巳,填实,则减。子辰年月,亦吉。 + ''', - 辛日天干己亥时,枭神背禄主灾虞;无冲发福亦不重,禄马飞天贵自殊。 - 辛日时临己亥,枭神背禄同宫。好如缺月被云龙。壬巳甲寅无用。 - 父母完全不睦,残花结果防风。若无克破与刑冲,飞天禄马福重。 - ''', - '壬日庚子':''' - 六壬日生时庚子,子上明庚暗损伤;火土月中仍主吉,不通凶狠只平常。 - 壬日庚子时,刃旺身强。壬以庚为倒食,癸为羊刃,时上明庚癸旺,若通火土月气,制伏庚癸,大贵; - 不通,凶狠平常。通运亦贵。 + 六壬日生时庚子,子上明庚暗损伤;火土月中仍主吉,不通凶狠只平常。 + 壬日庚子时,刃旺身强。壬以庚为倒食,癸为羊刃,时上明庚癸旺,若通火土月气,制伏庚癸,大贵; + 不通,凶狠平常。通运亦贵。 + + 天干壬日时庚子,枭日由来遇劫财;运弱妻儿防克害,运强财禄自天来。 + 壬日时逢庚子,劫财倒食流连,运行比劫事忧煎,财禄不能通显。雁侣双亲失意,妻儿迟则团圆,财官运步福滔然,祖业从新改变。 + + 壬日庚子时,刃旺身强。壬以庚为倒食,癸为羊刃,时上明庚癸旺,若通火土月气,制伏庚癸,大贵;不通,凶狠平常。通运亦贵。 - 天干壬日时庚子,枭日由来遇劫财;运弱妻儿防克害,运强财禄自天来。 - 壬日时逢庚子,劫财倒食流连,运行比劫事忧煎,财禄不能通显。 - 雁侣双亲失意,妻儿迟则团圆,财官运步福滔然,祖业从新改变。 - ''', + 壬子日庚子时,辰戌丑未月,杂气财官;巳申酉丑,印绶, 居土厚分野,俱贵。寅月,金水运,近侍金紫。 + 午月,行西运,六品,子运败凶。若纯壬子羊刃,贫凶。一云,少年富,三十五后艰辛,末大富。忌辛巳月凶恶死,辛亥月大凶,甲子月刑。 + + 壬寅日庚子时,贵而刑。辰戌丑未月,杂气财官;巳申酉月,印绶,俱贵。忌乙巳月受刑,丁酉月大破,祖恶死,乙亥月刑。 + + 壬辰日庚子时,若寅午月生,财星旺;辰戌丑未,官旺, 俱吉。纯辰,透庚壬,作壬骑龙背格,大贵。忌丙辰月,夭死,尸不全;丁未月破祖,孤;辛丑月大破,刑。 + + 壬午日庚子时,时日并冲,女多男少。丑未月,行南运,富贵。余年月,观诸贵命可见。忌甲午月自刑,多是非;癸酉 月大破,失乡恶死;辛亥月恶死。 + + 壬申日庚子时,贫、刑。未月,杂气财官,行财旺运贵显,先难后易。辰,会水太旺,须行火土运,吉。 + 丑、戌,财官印 绶,俱吉。春冬平常,秋夏吉庆。忌乙巳月受刑,夭;丁酉,夭;乙亥月孤,自刑。 + + 壬戌日庚子时,夭。丑月金火运,辰未财官格,俱贵。寅酉,行西北运,贵。申子辰,行东南运,极品。忌巳酉月,孤单凶;丁亥月,凶刑恶死;辛丑月,刑。 + ''', '壬日辛丑':''' - 六壬日生时辛丑,下有官星上印绶;如通月气运西南,官印扶身人清秀。 - 壬日辛丑时,官印得位。壬以己为官,辛为印,丑上金局, - 暗已得位,若通月气,为人清秀,禄贵安稳;不通,主性僻诡谲。 + 六壬日生时辛丑,下有官星上印绶;如通月气运西南,官印扶身人清秀。 + 壬日辛丑时,官印得位。壬以己为官,辛为印,丑上金局, + 暗已得位,若通月气,为人清秀,禄贵安稳;不通,主性僻诡谲。 + + 六壬日干辛丑时,官印相生事事奇;午月更通金土旺,为官清贵定无移。 + 壬日时临辛丑,财官印绶其中,要知开库钥匙通,戊己相逢火重。癸卯乙字减福, + 有遇龙虎相冲,只争迟早改门风,富贵承恩拜宠。 + + 壬子日辛丑时,巳酉丑月,印绶,多受父母荫。申月,火土运,近侍有权。辰戌丑未,有官有印,丰资旷达,名播天涯。寅午戌月,财破,禄印不成局,平常。亥申年月,贵 - 六壬日干辛丑时,官印相生事事奇;午月更通金土旺,为官清贵定无移。 - 壬日时临辛丑,财官印绶其中,要知开库钥匙通,戊己相逢火重。癸卯乙字减福, - 有遇龙虎相冲,只争迟早改门风,富贵承恩拜宠。 - ''', + 壬寅日辛丑时,丑月,杂气印绶高。辰巳,煞强无制伏, 财官身弱,辛苦。 + + 壬辰日辛丑时,辰戌丑未,杂气财官印绶,俱吉。春平, 夏财禄,秋吉,中有凶。冬身旺,须行南运方显。 + + 壬午日辛丑时,禄马同乡,贵。夏吉。秋,财官印全,亦贵。 + + 壬申日辛丑时,寅卯亥未年月,进士风宪,官至二品,终有起倒。辰戌,富足。申酉,享用自然,行北运亦贵。 + + 壬戌日辛丑时,辰月,冲开财官,贵。丑戌,亦吉。柱有乙癸卯字,平常。 + ''', '壬日壬寅':''' - 六壬日生时壬寅,水火相逢既济论;水木月通财禄贵,不通无救是常人。 - 壬日壬寅时,水火既济。壬用丙为财,甲为食,寅上丙生甲旺,壬水无气,若通水局,有倚托,皆贵,不通无救,福薄。 - 壬寅日健旺,主大富,如不通月气,亦贵。 + 六壬日生时壬寅,水火相逢既济论;水木月通财禄贵,不通无救是常人。 + 壬日壬寅时,水火既济。壬用丙为财,甲为食,寅上丙生甲旺,壬水无气,若通水局,有倚托,皆贵,不通无救,福薄。 + 壬寅日健旺,主大富,如不通月气,亦贵。 + + 六壬逢虎是浮沤,富贵功名莫强求;有印有官为上格,骤然财禄免忧愁。 + 壬日壬寅时遇,比肩相遇食神,弟兄雁侣少同群,此是生时定分。坐局运行官地,身强禄位超伦,身衰刑害祸相侵,衣禄平常之命。 + + 壬子日壬寅时,纯子,年月无午冲破,入飞天格,富贵。寅卯巳申酉戌亥年月,俱贵。 + + 壬寅日壬寅时,壬趋艮格,土厚地方,山明水秀,腰金衣紫。巳亥年月,武职三品,富厚纯笃。 + 寅年午月,行北运,金紫。巳月,行西北运,贵。辰戌丑未,亦吉。纯寅尤吉。一云中年贵,五十后大厄。 - 六壬逢虎是浮沤,富贵功名莫强求;有印有官为上格,骤然财禄免忧愁。 - 壬日壬寅时遇,比肩相遇食神,弟兄雁侣少同群,此是生时定分。 - 坐局运行官地,身强禄位超伦,身衰刑害祸相侵,衣禄平常之命。 - ''', + 壬辰日壬寅时,纯辰,壬骑龙背格,干头无丙丁戊己,运行比肩,大贵。纯寅大富。卯戌月,木金运,三五品贵。午月,平常。 + + 壬午日壬寅时,少年多疾厄。壬午,禄马同乡。辰寅年月, 二品贵。申酉,高尚,若通木火,才名冠世,贵。戌月,行东南运,方面极品。 + + 壬申日壬寅时,巳酉丑月,武职三品。辛卯、戌月,亦贵。子寅,大贵。一云贫而发,亦不久。 + + 壬戌日壬寅时,巳月,偏官格,名标金榜,身坐玉堂。纯子,三品,寅卯,行北运,风宪。又,六壬日见壬寅时,名白太虚贵,不久,盛而祸生。 + ''', '壬日癸卯':''' - 六壬日生时癸卯,引归死地势难安;劫财煞刃见伤鬼,倚托若无常命看。 - 壬日癸卯时,身死刃生。壬以癸为刃,卯为暗乙,而伤官鬼。 - 卯上癸生乙旺壬死,不通身旺月气,无救助及倚托者,夭贱。 - 巳酉丑月,印旺无化者,性僻孤高虚诈,通身旺,见金气,行才运,贵。伤官伤尽,行南运,亦贵。 + 六壬日生时癸卯,引归死地势难安;劫财煞刃见伤鬼,倚托若无常命看。 + 壬日癸卯时,身死刃生。壬以癸为刃,卯为暗乙,而伤官鬼。 + 卯上癸生乙旺壬死,不通身旺月气,无救助及倚托者,夭贱。 + 巳酉丑月,印旺无化者,性僻孤高虚诈,通身旺,见金气,行才运,贵。伤官伤尽,行南运,亦贵。 + + 壬癸相逢见卯贵,刑冲破害不周全。月逢二德兼身旺,改祸为祥乐自然。 + 壬日时临癸卯,败财背禄相逐,平生反复事疑迟,水到东方失位。须有贵人救助,自身文福难齐,祖财骨肉有盈亏,命主晚成先废。 + + 壬子日癸卯时,子卯相刑,忧伤妻子,贵人提携,财帛盈余,敦厚之命。 + + 壬寅日癸卯时,背财败禄,或兴或废。子年月,贵。巳月,财官虽刑,亦贵。辰戌丑未,官煞制刃,俱吉。 + + 壬辰日癸卯时,通身旺月,见土金破刃,行财运,贵。 + + 壬午日癸卯时,壬居午位,禄马同乡,又值卯时,贵显荣达。巳午年月,武职风宪。 + + 壬申日癸卯时,亥卯未寅月,伤官伤尽,妻贤子孝,土厚贵命。纯辰,医卜。子月水木,贵。壬戌日癸卯时,甲癸午酉年月,文贵。申,平常,金火运, 贵。 + ''', - 壬癸相逢见卯贵,刑冲破害不周全。月逢二德兼身旺,改祸为祥乐自然。 - 壬日时临癸卯,败财背禄相逐,平生反复事疑迟,水到东方失位。 - 须有贵人救助,自身文福难齐,祖财骨肉有盈亏,命主晚成先废。 - ''', - '壬日甲辰':''' 六壬日生时甲辰,壬骑龙背坐食神;柱中有托无刑害,必是荣华富贵人。 壬日甲辰时,亦为壬骑龙背。壬以甲为食神,辰上壬水合局,甲有生气,食神旺相,通月气者富贵福厚。 冬月,行卯运,不利。 - + 时遇甲辰壬日干,喜神重叠福多端;时来早晚功名就,运至申辰作显官。 - 壬日甲辰时好,青龙入庙为高,犹如兰蕙出蓬蒿,水木滋生荣茂。 - 时日冲开库旺,自然成就窝巢,运行吉地逞英豪,贵显亲人难靠。 + 壬日甲辰时好,青龙入庙为高,犹如兰蕙出蓬蒿,水木滋生荣茂。时日冲开库旺,自然成就窝巢,运行吉地逞英豪,贵显亲人难靠。 + + 壬子日甲辰时,纯子年月,飞天禄马,无破,六卿。巳酉,大贵。亥,亦贵。 + + 壬寅日甲辰时,巳月偏官格,不冲不破,贵显。午,正官,贵。辰卯局全,东方,少年登科,荣贵。 + + 壬辰日甲辰时,辰月生,壬骑龙背,大贵。寅月,不贵即富。戌月,杂气财官,冲开辰库,高命。子月,断根损叶,成败不定。未月,金水运,贵。 + + 壬午日甲辰时,水火灾。寅辰年月,翰苑宿儒,或居祭酒。纯子,风宪。卯寅,富厚。辰子,儒职。 + + 壬申日甲辰时,水火灾,丑寅年月,文行武权。纯子,金火运,方面。 + + 壬戌日甲辰时,寅申酉月,行南运,贵戚。亥卯未申子辰巳午年月,俱吉。 ''', - + '壬日乙巳':''' 六壬日生时乙巳,身绝有财不聚财;进神暗鬼来相克,透己相刑是祸胎。 壬日乙巳时,财旺身绝。壬用丙为财,戊为鬼,庚为倒食。 巳上有乙木为伤官,丙戌健旺,庚金长生,壬水气绝,柱有己官,祸患百端,傲物夸高。 若不通身旺月无救助者,贫;有倚托,通旺,或行身旺运,皆吉。 - + 壬日时逢乙巳临,谋为未遇且沈吟:贵人举荐财官旺,子嗣鸳帏不一心。 - 壬日时临乙巳,伤官背禄无取,虽然天乙贵人扶,贵显遇而不遇。 - 谋望云为反覆,生平实事成虚,时来发达改门闾,犹似旱苗得雨。 + 壬日时临乙巳,伤官背禄无取,虽然天乙贵人扶,贵显遇而不遇。谋望云为反覆,生平实事成虚,时来发达改门闾,犹似旱苗得雨。 + + 壬子日乙巳时,贵,但难为妻子,性格刚强,不受击触。戌年月,纯煞有制,行木金运,官至三品。 + + 壬寅日乙巳时,孤高,刑妻克子,如为僧道,富贵。 + + 壬辰日乙巳时,春平,夏财,秋稳实,冬无助救,主贫苦。 + + 壬午日乙巳时,辰戌月,贵。亥月,金运,位至都帅。 + + 壬申日乙巳时,身坐长生学堂,财帛进退,名利驱驰。木月,行北运,贵。辰戌丑,俱吉。 + + 壬戌日乙巳时,寅年月,入日德格,贵。辰戌丑未,贵。秋印,夏财官,俱吉,春伤、冬旺,看干透何如,亦可取贵。 + ''', - + '壬日丙午':''' 六壬日生时丙午,聚财之地坐胞胎;月逢金水须富贵,弃命从来是就财。 @@ -842,183 +2202,373 @@ 有倚托,通金水月气,就财生旺,主富贵,通火气,亦贵。 丙午时生壬日强,时中禄马不寻常;运行吉地无冲破,早晚升迁到省堂。 - 壬日时逢丙午,亦名禄马同乡,就中既济见文章,志气宽洪海量。 - 不过刑冲破害,自然财禄盈箱。运行财旺及官乡,定是朝中宰相。 + 壬日时逢丙午,亦名禄马同乡,就中既济见文章,志气宽洪海量。不过刑冲破害,自然财禄盈箱。运行财旺及官乡,定是朝中宰相。 + + 壬子日丙午时,公直撑持,孤高而贵。年月子午,字重, 水火既济,极品。 + + 壬寅日丙午时,寅午戌月,财星格,但嫌身弱,宜僧道, 吉。秋生,印绶。冬,身旺,行金火运,金紫。 + + 壬辰日丙午时,寅午戌月,财旺,大贵。 + + 壬午日丙午时,冬日身旺,吉。夏,财多身弱,丑日近侍, 贵。寅午,金土运,独弱从强,弃命就财,高命。 + + 壬申日丙午时,通金水月气,贵;不通,弃命就财,主富, 不然,极贫下。 + + 壬戌日丙午时,寅月,三合财局,弃命相从,富。秋,身有托,贵。冬亦吉。 ''', - + '壬日丁未':''' 六壬日生时丁未,夫化妻从格局奇;若是局中通水木,发财发福两相宜。 壬日丁未时,夫从妻化,壬合丁,未上同木局,贵。若月通木局,有倚托者发财,不通,但有资助,因妻致富。 - + 壬日时逢丁未临,木化成林忌见金;年月若还无破害,必教富贵福弥深。 - 壬日时临丁来,就中暗合妻财,好来丑戌钥匙开,收积钱财广大。年月克冲不犯,天然衣禄安排, - 鸳帏子息早年乖,中末依然享泰。 + 壬日时临丁来,就中暗合妻财,好来丑戌钥匙开,收积钱财广大。年月克冲不犯,天然衣禄安排,鸳帏子息早年乖,中末依然享泰。 + + 壬子日丁未时,月通木气,贵;通金气,富,通火土气,富贵;两全不通,行火土运,亦吉。 + + 壬寅日丁未时,丁壬化木,亥卯未,寅月,贵。 + + 壬辰日丁未时,辰月生,壬骑龙背局,贵显。寅月,妻重子荣。三合水局,身旺无倚,多贫克妻。 + + 壬午日丁未时,春平,夏富,秋贵,冬吉。巳午年月,位至王候。未月,东运,贵。子月,正印、三奇俱藏,贵当极品。 + + 壬申日丁未时,大富。巳午年月,或透戊己,富贵双全。 + + 壬戌日丁未时,日德,封妻荫子,中年又损妻子。亥子申酉月,贵。巳午,不贵即富。辰月夭,月德贵。 ''', - + '壬日戊申':''' 六壬日生时戊申,长生之地鬼伤身;身强制伏为高命,反此定知贫薄人。 壬日戊申时,水土混浊。壬以戊为鬼,庚为印,申上庚金健旺,壬水长生,戊土偏官,身鬼俱强, 为人勇暴,若通旺月,行身旺运,有甲木制伏者贵;不通,聪明不贵,再行鬼旺运,难以显达。 - + 申时壬戌合天元,运去财官福自然;鬼旺身衰无救助,平生劳碌不周全。 - 壬日戊申时显,支干煞旺双全,喜逢辰子两相连,正合衣锦局面。 - 被害刑冲克战,就中文福艰难,运行吉地紫泥宣,富贵妻多子健。 + 壬日戊申时显,支干煞旺双全,喜逢辰子两相连,正合衣锦局面。被害刑冲克战,就中文福艰难,运行吉地紫泥宣,富贵妻多子健。 + + 壬子日戊申时,羊刃带煞,贵人提携。巳午年月,近侍有权。 + + 壬寅日戊申时,时日相冲,身孤为僧道,吉。如寅午戌或纯辰年月,亦贵。 + + 壬辰日戊申时,戌月生,早登科甲,官至方面。寅卯丑申子午等年月,极贵,武职一品。 + + 壬午日戊申时,偏官偏印。亥卯未寅月,威权。子丑月,木火运,翰林清贵。戌月,行东南运,高品。 + + 壬申日戊申时,壬水长生,居申,煞旺身强,更生亥卯未月,偏官有制,吉。 + + 壬戌日戊申时,破滞多蹇。纯酉,巨富。若不通身旺月, 行煞旺乡,不吉。有甲制亦可。戊己土重,主瞎疾平常。 ''', - + '壬日己酉':''' 六壬日生时己酉,明官暗印有扶持;月通身旺人清贵,犹恐恋花贪酒色。 壬日己酉时,败处逢生。壬水酉上沐浴,辛为生气印绶,酉上辛金旺,用己为官,酉上有明己 ,若通月气有倚托,行财官运,贵,反是,平常。但犯桃花坐命,风流人物,恋花贪酒。 - + 天干壬日酉时真,改祸为祥遇贵人;若不为官封品级,晚年享福旺家门。 - 壬日时逢己酉,正官印绶无偏,荣枯贵贱是因缘,人自生成便见。乙癸卯冲破克,驳杂财官减半, - 遭富贵不双全,差了生时难辩。 - ''', - - '壬日己酉':''' - 六壬日生时己酉,明官暗印有扶持;月通身旺人清贵,犹恐恋花贪酒色。 - 壬日己酉时,败处逢生。壬水酉上沐浴,辛为生气印绶,酉上辛金旺,用己为官,酉上有明己 - ,若通月气有倚托,行财官运,贵,反是,平常。但犯桃花坐命,风流人物,恋花贪酒。 + 壬日时逢己酉,正官印绶无偏,荣枯贵贱是因缘,人自生成便见。乙癸卯冲破克,驳杂财官减半,遭富贵不双全,差了生时难辩。 - 天干壬日酉时真,改祸为祥遇贵人;若不为官封品级,晚年享福旺家门。 - 壬日时逢己酉,正官印绶无偏,荣枯贵贱是因缘,人自生成便见。乙癸卯冲破克,驳杂财官减半, - 遭富贵不双全,差了生时难辩。 - ''', - + 壬子日己酉时,春平,夏吉,秋常,冬旺。如卯月生,好花酒。 + + 壬寅日己酉时,大富贵,喜通水气,行官运,贵。但好花酒,风流人物。 + + 壬辰日己酉时,高,月同日,壬骑龙背,大贵。巳月,行东北运,贵。 + + 壬午日己酉时,禄马同乡,先难后易。丑寅月,行金水运, 武职二品。 + + 壬申日己酉时,官印临门,局中无冲破,禄马双全,不贵即富。戌月生,东南方运,腰金衣紫。 + + 壬戌日己酉时,亥寅子月,行财官运,贵显非常。纯亥, 文贵。 + ''', + '壬日庚戌':''' 六壬日生时庚戌,身临财库却为鬼;明庚暗戌相刑克,财禄生平聚散多。 壬日庚戌时,枭临财库,壬以丙丁为财,库于戌,庚为倒食,戊偏官, 若通火木月气,有倚托者,贵;不通,财帛聚散。 - + 壬庚相逢戌时生,库有财官锁闭门;究竟无头多反覆,功名到底似浮云。 - 壬日时逢庚戌,支干倒食难容。财官印绶库内封,无钥不能取用。丑酉辰逢作福,更逢丁己成名 - ,但怕克害过刑冲,驳杂如常之命。 + 壬日时逢庚戌,支干倒食难容。财官印绶库内封,无钥不能取用。丑酉辰逢作福,更逢丁己成名,但怕克害过刑冲,驳杂如常之命。 + + 壬子日庚戌时,名利进退,庚辛年月,贵。辰丑,刑冲; 酉月,破害,财库得用;巳午,财官旺,俱吉。 + + 壬寅日庚戌时,刑妻克子。若春生,平,夏、冬,吉。辰 丑未月,贵。 + + 壬辰日庚戌时,夏月,不富则贵,春平,秋稳,冬辛勤劳苦,或为僧道,有财破刑。 + + 壬午日庚戌时,禄马同乡,壬自坐禄,有庚辛制甲乙为贵。辰戌丑未年月,吉。申月学堂,文贵大显。亥子水旺,透壬主凶。午戌透戊,煞旺亦凶。 + + 壬申日庚戌时,通火木月气,富贵;不通,行通运,亦好。丑戌年月,大贵。 + + 壬戌日庚戌时,不利妻,主被妻妾害,反覆成败。纯戌,贵。寅丑,武职。申月,长生学堂,修文多贵。 + 亥月,建禄,干透财官;卯月,伤官,干透财星,俱贵。未月,杂气财官,丑戌相刑。吉。 ''', - + '壬日辛亥':''' 六壬日逢辛亥时,印禄相随最是奇;财官不见无冲破,得路青云报尔知。 - 壬日辛亥时,日禄居时,无克破,有倚托,柱中不见财官,富贵显达;行东运,大贵; - 若通气,减福;南方运,不贵巨富。 - + 壬日辛亥时,日禄居时,无克破,有倚托,柱中不见财官,富贵显达;行东运,大贵;若通气,减福;南方运,不贵巨富。 + 壬辛会遇亥时推,白玉休嫌出见迟;长生禄马无刑破,抛却麻衣挂紫衣。 - 壬日时临禄马,又为印绶同乡,水从金木自然强,此命极高为上。 - 癸乙暗合咸福,无冲破显文章,积玉堆金满屋堂,荫子封妻之象。 + 壬日时临禄马,又为印绶同乡,水从金木自然强,此命极高为上。癸乙暗合咸福,无冲破显文章,积玉堆金满屋堂,荫子封妻之象。 + + 壬子日辛亥时,主父母不得善终,后发不富。亥卯年月,文章进身,大贵。 + + 壬寅日辛亥时,艰难中发。未月,杂气财官,敦厚,中年贵,五十后终。亥月,东南运,方面。 + + 壬辰日辛亥时,秀贵、恶死,午月,干头无己土,青云得路,若有甲合,为去官留煞,三四品贵。酉月亦贵。 + + 壬午日辛亥时,平。丑月,风宪。寅月,禄马同乡,行金水运,方面。戌月,东北运,四五品。丑午,僧道官命。 + + 壬申日辛亥时,贵。辰戌丑未,杂气财官,吉。年月干无己土,入日禄格,酉月申卯年,行东北运,显贵。 + + 壬戌日辛亥时,少年富贵。亥申巳戌年月,一二品贵。纯戌,水火运,金紫。 ''', '癸日壬子':''' 六癸日生时壬子,青云得路最为奇;若无己土冲克破,自有功名显达时。 - 癸日壬子时,日禄归时,癸水子上建禄, - 若年月干支无戊己午未字刑冲破害,三元有倚托,通月气者,文章秀丽,官职显达; + 癸日壬子时,日禄归时,癸水子上建禄,若年月干支无戊己午未字刑冲破害,三元有倚托,通月气者,文章秀丽,官职显达; 若通木气月,亦贵。如柱透己,有甲合,亦贵。否则,反覆。 日禄归时局中得,食神喜遇怕刑冲;伤官莫道伤财运,官不加兮财不丰。 - 癸日时临壬子,名为归禄格同,家门白屋也峥嵘,玄武当权禄重。 - 水清宝瓶益盛,文章博览多通,荣迁来历紫薇封,甲午寅亥破动。 + 癸日时临壬子,名为归禄格同,家门白屋也峥嵘,玄武当权禄重。水清宝瓶益盛,文章博览多通,荣迁来历紫薇封,甲午寅亥破动。 + + 癸丑日壬子时,午寅、乙丑,己丑年月,文职四五品,通身旺木气月,无戊己午巳字,显贵。未,风宪。巳午,进士。 + 忌壬寅、乙未、庚戌月,俱刑。乙丑月,下贱。 + + 癸卯日壬子时,时日相刑,伤妻克子,近贵;无己土,威 权。若亥巳俱全,进士乌府。 + 年月纯寅,伤官生财,非大贵即大富。忌甲辰月凶刑孤,丙申月凶恶死,己丑月刑。 + + 癸巳日壬子时,春夏发财福,辰戌丑未,不贵终富。忌戊寅月遭刑,戊申月受刑,己酉月乞丐。 + + 癸未日壬子时,申酉月,贵。戌亥,大富贵。寅卯,孤。辰巳,凶。忌壬申月,身不全,凶;庚辰月,凶刑;乙丑月,失土凶死。 + 癸酉日壬子时,行藏进退,少子难为妻家。忌丙寅月,不全尸死;乙巳月,大破凶死;丁酉月,自缢死。 + + 癸亥日壬子时,贵。亥月生,飞天禄马,登科甲第,大贵。又癸禄居子,壬禄居亥,日时互换,三四品贵。忌戊寅月,死不全尸;戊申月孤贫;己酉月孤苦。 ''', - '癸日癸丑':''' + '癸日癸丑':''' 六癸日生时癸丑,支中暗鬼有刑伤;月通身旺防妻损,丑巳遥合贵异常。 - 癸以丁为妻,丑中丁火无气,若通身旺比肩之月,防损妻财。 - 柱丑寅多,以寅刑巳,丑合巳,刑出巳中,丙戊为财官,须干 - 头无戊己字,大贵。忌巳未卯破格。 + 癸以丁为妻,丑中丁火无气,若通身旺比肩之月,防损妻财。柱丑寅多,以寅刑巳,丑合巳,刑出巳中,丙戊为财官,须干头无戊己字,大贵。忌巳未卯破格。 阴水重重时库收,少年难发莫强求;筹来受过中年后,安坐高堂任白头。 - 癸日时逢癸丑,水流金局盈冲,库逢戌未禄财丰,不过空乏难动。 - 无匙少年不显,有匙禄马和同,运来何用苦劳心,发达门庭大庆。 + 癸日时逢癸丑,水流金局盈冲,库逢戌未禄财丰,不过空乏难动。无匙少年不显,有匙禄马和同,运来何用苦劳心,发达门庭大庆。 + + 癸丑日癸丑时,丑遥巳中丙戊为财官,若生丑寅申子酉三合年月,主妻贤于孝,荣贵特达;火土运凶;金水运吉。 + 癸卯日癸丑时,日贵格,身孤克,主贵。丑寅辰年月,干支无戊己巳午卯字,极品。 + + 癸巳日癸丑时,福德秀气格,学问聪明,英才特达,贵。若纯丑巳年月,大贵。 + + 癸未日癸丑时,子丑寅年月,贵,中年富。卯月,行金水运,极品。辰戌,四库全,大贵。 + 癸酉日癸丑时,福德秀气格,学问渊源,行藏进退,难为妻家。 + + 癸亥日癸丑时,拱禄格,怕冲破、填实,柱无子巳午未字,大贵。寅午戌月,南方运,六七品。 ''', - '癸日甲寅':''' + '癸日甲寅':''' 六癸日生时甲寅,刃复官禄减精神;柱中无有庚申字,刑合财官是贵人。 - 癸日甲寅时,刑合财官,癸以丙为财,戊为官,寅刑出巳中丙戊为财官, - 若柱无官煞及刑冲破害损格,贵;有庚申戊己字,无制伏,不贵。 + 癸日甲寅时,刑合财官,癸以丙为财,戊为官,寅刑出巳中丙戊为财官,若柱无官煞及刑冲破害损格,贵;有庚申戊己字,无制伏,不贵。 甲寅癸日戊丙开,少年未遇且沉埋;若还四柱无冲破,平步登云到省台。 - 癸日寅时克应,支干相合光荣,若无壬己戊庚申,必然财禄丰润。 - 运至皇州显达,文章虎榜标名,但逢一字稍空冲,克子伤食剥俸。 + 癸日寅时克应,支干相合光荣,若无壬己戊庚申,必然财禄丰润。运至皇州显达,文章虎榜标名,但逢一字稍空冲,克子伤食剥俸。 + + 癸丑日甲寅时,本贵,丑中有辛金,减其分数。纯水年月, 官至一品。秋生印绶,亦贵。辰月,行东运,贫下。纯申破寅, 凶。 + + 癸卯日甲寅时,亥卯未月,至贵。寅卯年月,刑合格,侯伯。寅亥,四品。寅月,西运,金紫。丑戌辰巳,亦贵。 + + 癸巳日甲寅时,平,通身旺月,大贵。忌戊己庚申字,岁运同。 + + 癸未日甲寅时,主秀实,中年贵显。若生己未己巳年月,武贵。 + + 癸酉日甲寅时,金神格。寅午戌月,结火局,贵显特达, 官至二三品。忌丑年,不贵。巳未亥子年月,富寿。辰丑,干透甲丁者,凶。 + + 癸亥日甲寅时,子丑未申月,进士,运行金水,风宪。卯戌年月,地支六合,贵。 ''', - '癸日乙卯':''' + '癸日乙卯':''' 六癸日生乙卯时,长生之地遇食神;众无午酉兼辛巳,福寿双全禄位人。 癸日乙卯时,食神干旺。癸以乙为学堂食神,卯上癸水长生,乙坐禄,柱中无己破辛夺, 午酉刑冲,通月气,有倚托,主聪明有寿,居官食禄;若有己土,不贵。春月生,北运,显达。 乙癸相逢旺食支,天工造物本无私;运行自有高人荐,手攀丹桂上云逵。 - 癸日时逢乙卯,贵人食禄之乡,玉堂乙卯位侯王,便是金门将相。 - 君子文章播发,常人财禄盈箱,甲寅辛酉颇安常,富贵荣华大享。 + 癸日时逢乙卯,贵人食禄之乡,玉堂乙卯位侯王,便是金门将相。君子文章播发,常人财禄盈箱,甲寅辛酉颇安常,富贵荣华大享。 + + 癸丑日乙卯时,辰丑月,高贵。一云:少贱中年贵。 + + 癸卯日乙卯时,艰难。生寅卯月,伤官格,难言富贵。未戌年月,技艺近贵。辰丑,吉。己丑、丙子,凶。 + + 癸巳日乙卯时,财官双美,春伤官,夏财旺,秋印稳,冬平常。如丑午子亥年月,官至三四品。乙亥、乙酉,残疾。 + + 癸未日乙卯时,寅亥卯未月,伤官伤尽,刚断平常。辰戌申子月,贵。 + + 癸酉日乙卯时,申子辰月,贵。寅午戌,中。亥卯未,平。巳酉丑,富。 + + 癸亥日乙卯时,辰己月,风宪。 ''', - '癸日丙辰':''' + '癸日丙辰':''' 六癸日生时丙辰,偏官无气未为贫;若无木气通其局,定是清高福禄人。 - 癸日丙辰时,身坐官库,癸用戊己为官,辰上土墓为官库, - 见丙为财,辰为水局,丙火无气,癸水合局,柱无甲破官损库,主贵。 + 癸日丙辰时,身坐官库,癸用戊己为官,辰上土墓为官库,见丙为财,辰为水局,丙火无气,癸水合局,柱无甲破官损库,主贵。 癸日丙辰官库闭,财星虽透却无气;官要匙开财要兴,柱逢卯戊方为贵。 - 癸日丙辰时遇,库中锁闭财官,要逢卯戊钥匙开,守祖六亲阻碍。暗有食神相助,空乏虚度资财, - 先贫后富命中排,改祖重兴渐快。 + 癸日丙辰时遇,库中锁闭财官,要逢卯戊钥匙开,守祖六亲阻碍。暗有食神相助,空乏虚度资财,先贫后富命中排,改祖重兴渐快。 + + 癸丑日丙辰时,平。辰戌丑未月,财官有气,贵。 + + 癸卯日丙辰时,孤独难为椿萱,有财帛,贵,人钦敬。卯亥年月,日贵格。午戌,九品至五品。寅月,行南运,风宪。 + + 癸巳日丙辰时,子月生,南方,山明水秀,地方,高贵。子未年月,富厚。戌卯,近侍。未戌申,儒官。 + + 癸未日丙辰时,高。寅卯未月,平常。辰戌丑月,吉,巳月,财官俱旺,贵。 + + 癸酉日丙辰时,孤,贵。巳酉丑月,贵。寅卯,不吉。子午,富。戌月,大贵。 + + 癸亥日丙辰时,柱无甲木破损官库,贵,运南。 ''', - '癸日丁巳':''' + '癸日丁巳':''' 六癸日生时丁巳,贵地逢财遇暗官;有托就看财禄盛,无依必定福偏残。 癸日丁巳时,癸合财官,癸用丙为财,戊为官,庚为印,巳为天乙贵人。 - 巳上庚金长生,丙戊建禄,癸水受胎,若有倚托,通水气月,贵,不通水气。平常。 - 时逢三奇,大抵发于晚年。 + 巳上庚金长生,丙戊建禄,癸水受胎,若有倚托,通水气月,贵,不通水气。平常。时逢三奇,大抵发于晚年。 巳时禄马同争先,造化无私产大贤;刑冲减半无空克,运至声名扬九天。 - 癸日时临丁巳,贵人禄马同乡,三重蛇马正朝纲,玉殿金阶来往。壬亥申寅减半,只愁运落空亡, - 果无冲克无刑伤,舞拜凤凰池上。 + 癸日时临丁巳,贵人禄马同乡,三重蛇马正朝纲,玉殿金阶来往。壬亥申寅减半,只愁运落空亡,果无冲克无刑伤,舞拜凤凰池上。 + + 癸丑日丁巳时,先贫后富,行火水运,发达。 + + 癸卯日丁巳时,若子月,身旺财旺,贵显。 + + 癸巳日丁巳时,财官双美。子月,贵。火月,富。天干透土,地支午未,主大权贵。纯丑,极品。 + + 癸未日丁巳时,寅午戌月,身财旺显,秋冬禄旺,伤残疾。 + + 癸酉日丁巳时,先贫后富。巳酉月,官印俱旺。亥卯未,食伤生财,贵显。午戌,财旺,亦吉。 + + 癸亥日丁巳时,刑害。春夏月生,好。秋,印绶,吉。冬,平常。庚寅年月,武贵。 ''', - '癸日戊午':''' + '癸日戊午':''' 六癸日生时戊午,化火临时帝旺乡;运喜东南木火地,为官清正禄荣昌。 - 癸日戊午时,化气成火局,癸合戊化火,午上帝旺,合局而贵,身旺不化癸水,地方之气引到南方, - 癸水无气,贵而寿促,东方运吉。 + 癸日戊午时,化气成火局,癸合戊化火,午上帝旺,合局而贵,身旺不化癸水,地方之气引到南方,癸水无气,贵而寿促,东方运吉。 将星扶禄命高低,见爱于人是与非;得志退毛鸡化凤,虎卧平坡被兔欺。 - 癸日时逢戊午,天元既济之方,化为真火显威光,灾难消除福长。 - 壬会甲寅减半,是非成败难防,六亲不睦暗刑伤,难得资财富旺。 + 癸日时逢戊午,天元既济之方,化为真火显威光,灾难消除福长。壬会甲寅减半,是非成败难防,六亲不睦暗刑伤,难得资财富旺。 + + 癸丑日戊午时,财厚,南运主贵寿促,东运吉。 + + 癸卯日戊午时,申子辰亥月,身旺不化,平常。卯戌月, 贵。 + + 癸已日戊午时,中年大富,若行东运,贵显。申未月,亦贵。 + + 癸未日戊午时,寅午戌,化火合局,贵显。 + + 癸酉日戊午时,主伤妻家财,有始无终,子年子贵而无禄, 行南运,好。 + + 癸亥日戊午时,贵,未月,东方运;金月有制,俱贵显。 ''', - '癸日己未':''' + '癸日己未':''' 六癸日生时癸未,鬼旺身衰福不齐;月气不通无救助,平常衣禄有相亏。 + 癸日己未时,鬼旺身衰。癸以己为鬼,未上明暗二己得坐 专位,癸水无气,浑浊不清,反复成败,若通月制又不通水气者,平常 偏官暗鬼库中埋,险难惊忧不聚财;丑戌相逢钥匙吉,旺中癸福定无灾。 癸日时临己未,库中耗鬼身衰,不逢卯戌钥匙开,锁闭不能通泰。 花落重荣结子,双亲雁侣难谐,纵然先贫后富来,弃旧迎新无碍。 + + 癸丑日己未时,高。年月俱丑,贫薄。辰戌丑未,土旺,主目疾、贫贱。通金木水气,贵。午月,东北运,六七品贵。 + + 癸卯日己未时,子巳未年月,二品。巳寅字,刑六亲。 + + 癸巳日己未时,财官双美,柱无戊土,有卯木合局,作时上偏官,有制,贵。 + + 癸未日己未时,高。春偏官有制,吉。夏,平常。秋、冬身旺,申月行木运,显贵。巳辰年,六卿。 + + 癸酉日己未时,寅巳申酉丑戌年月,贵。 + + 癸亥日己未时,贵。未月生,忠孝双金,官至风宪。如煞官混杂,恐终在外。亥年月,贵。 ''', - '癸日庚申':''' + '癸日庚申':''' 六癸日生时庚申,官星印旺在其支;柱中无己丙寅巳,自有荣华富贵时。 癸日庚申时,作专印合禄。癸以戊为正官,庚为正印,申上庚旺戊生,以申合巳中戊丙, 癸日得财官,若有倚托,柱中无财及破害刑冲官印,主贵;柱中有财,行财运,反复进退,少贵。 癸日庚申仔细推,禹门深处见龙飞;文章得助雄威力,柱合财官世所希。 - 癸日庚申时正,印绶齐合官星,亥寅申丙巳刑冲,离合立之身不定。 - 无破黄甲显姓,常人财禄安宁,果无刑害与灾星,便是锦鸡化凤。 + 癸日庚申时正,印绶齐合官星,亥寅申丙巳刑冲,离合立之身不定。无破黄甲显姓,常人财禄安宁,果无刑害与灾星,便是锦鸡化凤。 + + 癸丑日庚申时,辰戌丑未年月,文章冠世,官至三品。子月坐禄,亦吉。 + + 癸卯日庚申时,卯月作合禄格,西北运,贵,金紫。申月, 东北运,风宪。庚辰、庚戌年月,正官格,贵。辰月,金水运, 七品贵。 + + 癸巳日庚申时,贫,亦是合禄格。未月生,问学有成,西北运,贵;行东北运,亦贵。 + + 癸未日庚申时,柱有甲寅,乙卯,己与甲合,乙与庚合, 妻贤子孝,荣华在后。酉申年月,三四品。秋生,行木火运, 二三品。亥卯,文进贵。 + + 癸酉日庚申时,卯酉戌寅年月,贵。申酉,火木运,大贵。 + + 癸亥日庚申时,性平身孤。卯未月,饱学,贵命。申,亦贵。子申,近侍有权。 ''', + + '癸日辛酉':''' + 六癸日生时辛酉,自身失地更何有;支中明暗被辛伤,无助利名终不就。 + 癸日辛酉时,明暗枭神。癸见辛为倒食,酉上辛建旺,癸失地,若无倚托救助者,遇贵生涯;有倚托则吉。 + + 天元是癸时申酉,用尽心机度日忙; 官印相生逢印合,胸中便富且如常。 + 癸日辛酉时遇,倒食偏印难禁,柱中无依且安贫,财官月遇亦称。 只怕癸水失地,不能驱驾奚胜,六亲骨肉各西东,一生劳苦之命。 + + 癸丑日辛酉时,秋月,印绶格,行官煞运,吉。冬,福禄双全。子寅年月,干头无戊己字,贵。 + + 癸卯日辛酉时,日贵格,辰戌丑未月,贵。子卯年月,大贵。巳午,亦贵。又云不利妻子。 + + 癸巳日辛酉时,孤。寅卯年,辰戌丑未月,贵。子午卯酉, 中贵。寅申巳亥,最贵。 - '癸日壬戌':''' + 癸未日辛酉时,春贫,夏先难后易,秋吉,冬贵。 + + 癸酉日辛酉时,申酉月,印绶多,能守祖,破妻家。子巳午月,干透庚辛,禄贵印绶俱全,贵不可言。寅戌,腰金。午亥,大贵。丑月,煞重凶夭。 + + 癸亥日辛酉时,戌月,行东南运,金紫;东北,风宪。子月建禄,年遇财官,大贵。 + ''', + + '癸日壬戌':''' 六癸日生日壬戌,支内正官生财库;月兼有救贵多成,倚托若无终不富。 - 癸日壬戌时,水火既济,癸用丙丁为财,戊土为官,戊与癸合旺,为人智谋,通月气有倚托者贵; - 不通,平常;通火土月气,富贵双全;运气通,亦吉。 + 癸日壬戌时,水火既济,癸用丙丁为财,戊土为官,戊与癸合旺,为人智谋,通月气有倚托者贵;不通,平常;通火土月气,富贵双全;运气通,亦吉。 天乙壬癸戌时排,库内财官等钥开;不遇刑冲空锁闭,少年难发更生灾。 - 癸日时逢壬戌,就中仓库盈余,将星天德两相扶,辰戌钥匙开助。 - 土旺长流水局,六亲恩处成疏,不遇空亡有增余,中末荣华享福。 + 癸日时逢壬戌,就中仓库盈余,将星天德两相扶,辰戌钥匙开助。土旺长流水局,六亲恩处成疏,不遇空亡有增余,中末荣华享福。 + + 癸丑日壬戌时,刑,亥月,土厚地方上贵。辰申年月,南方运,状元。五月,南运,都宪。若春秋生,南方运,八九品。 + + 癸卯日壬戌时,日贵格,寅巳年月,干透戊丁财官而旺, 大贵有权。卯辰丑午子等年月,文贵。酉戌,金土运,五六品。 + + 癸巳日壬戌时,财官双美,春平,夏秋冬贵。辰丑未寅酉年月,风宪。 + + 癸未日壬戌时,刑。巳月生,三四品。子庚年月,近侍贵。 + + 癸酉日壬戌时,亥子月,才智高贵,妻贤子孝。春平常。夏财官,秋印绶,俱吉。辰丑,刑冲戌库,贵富两全。戌月, 东南运,武贵。 + + 癸亥日壬戌时,春生,伤官见官,夏财旺,秋、冬吉,名利有成。戌辰月,行亥子运,贵。子月,行西南运,金紫。 ''', - '癸日癸亥':''' + '癸日癸亥':''' 六癸日生时癸亥,禄马飞天临旺神;不见官星兼惹绊,必为贵格异常人。 - 癸日癸亥时,禄马飞天格,癸水亥健旺,癸用戊为官,丙为财,亥中丙戊俱绝, - 癸无财官,却亥去冲出巳中丙戊,飞来就癸为财官,柱无戊己惹绊及官星破禄,若见庚辛, - 清白而秀,为人智慧,贵为方面。 + 癸日癸亥时,禄马飞天格,癸水亥健旺,癸用戊为官,丙为财,亥中丙戊俱绝,癸无财官,却亥去冲出巳中丙戊,飞来就癸为财官, + 柱无戊己惹绊及官星破禄,若见庚辛,清白而秀,为人智慧,贵为方面。 阴水重重透海波,少年未遇且蹉跎;困龙得志方能化,不遇时来虎卧坡。 - 癸日时逢癸亥,败财带禄亨通。喜宜秋夏忌春冬,戊丙庚木富盛。 - 巳亥甲丙反复,六亲大不和同。一身不定好翻腾,先败后成之命。 + 癸日时逢癸亥,败财带禄亨通。喜宜秋夏忌春冬,戊丙庚木富盛。巳亥甲丙反复,六亲大不和同。一身不定好翻腾,先败后成之命。 + + 癸丑日癸亥时,作拱禄格。巳酉丑生,福德秀气。午月平常。卯酉月,行南运,金紫风宪,但难为寿。 + + 癸卯日癸亥时,平,日贵格。寅卯月,伤官论,行金水运,风宪。辰戌丑未月,官旺。纯卯,三品贵。辰戌与卯刑,主孤 贫。 + + 癸巳日癸亥时,丑月,杂气印绶。贵。亥子年月,行南运,贵。又禄马同乡格,巳申年月,大贵。 + + 癸未日癸亥时,身下坐财官。辰戌丑未月,行东北运,贵。秋月,东运,七八品贵;干透正印、正官,金紫。 + + 癸酉日癸亥时,辰戌丑未月,生涯遂意。酉月,行东北运, 八九品贵。申月,东方运,五品。 + + 癸亥日癸亥时,性聪飘逸,中年大富。冬月生,飞天禄马, 无戊巳子字填实惹绊,贵显;不然,孤克为僧道,亦主清高。 + 年月辰亥,干透辛壬,无填实巳字,有智量,大贵。卯月,金紫。巳丑亦贵。 ''', -} \ No newline at end of file +} From aa1f4d1a7136a0d01af34724f756475443c66ab1 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 15 Apr 2019 14:46:47 +0800 Subject: [PATCH 043/122] Add books in society_books.md --- society_books.md | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/society_books.md b/society_books.md index ac01e0d..cdefd4a 100755 --- a/society_books.md +++ b/society_books.md @@ -30,6 +30,10 @@ # 社科书籍 +[管理大师稻盛和夫经典收藏版共6册 《拯救人类的哲学》、《干法》、《领导者的资质》《调动员工积极性的七个关键》、《阿米巴经营(实战篇)》《稻盛和夫语录100条》》](https://www.jianshu.com/p/ce45304358be) + +[书籍: 上海读客 知行合一王阳明大合集(1+2+3+传习录)](https://www.jianshu.com/p/678ac669c2d5) + ## 保健 [图解八段锦、五禽戏、易筋经-《国医绝学健康馆》编委会.pdf](https://itbooks.pipipan.com/fs/18113597-313704156) @@ -93,7 +97,7 @@ [推拿排毒一身轻 \- 2010.pdf](https://itbooks.pipipan.com/fs/18113597-314728506) 亚马逊4.0星 9评论 -[推拿研究与应用 \- 2010.pdf](https://itbooks.pipipan.com/fs/18113597-314728539) +[推拿研究与应用 \- 2010.pdf](https://itbooks.pipipan.com/fs/18113597-314728539) [介绍](https://www.jianshu.com/p/4d96e6e6f556) [李少波真气运行针灸推拿实践 \- 2012.pdf](https://itbooks.pipipan.com/fs/18113597-314728551) 亚马逊4.5星 12评论 @@ -105,7 +109,7 @@ [海派儿科推拿 2017.pdf](https://itbooks.pipipan.com/fs/18113597-314557878) -[针灸推拿一学就会 \- 2009.pdf](https://itbooks.pipipan.com/fs/18113597-314728489) +[针灸推拿一学就会 \- 2009.pdf](https://itbooks.pipipan.com/fs/18113597-314728489) [介绍](https://www.jianshu.com/p/e1cc78e210f5) [零基础学会推拿按摩 \- 2015.pdf](https://itbooks.pipipan.com/fs/18113597-314557891) 亚马逊4.2星 13评论 @@ -113,7 +117,7 @@ [图解刮痧拔罐疗法 \- 2014.pdf](https://itbooks.pipipan.com/fs/18113597-314933874) -[手到病自消全集.2,拔罐、刮痧、艾灸、贴敷祛百病 - 2015.pdf](https://itbooks.pipipan.com/fs/18113597-314933790) +[手到病自消全集.2,拔罐、刮痧、艾灸、贴敷祛百病 - 2015.pdf](https://itbooks.pipipan.com/fs/18113597-314933790) [介绍](https://www.jianshu.com/p/eff6c3b25795) [手到病自除 1——刮痧、拔罐、艾灸、贴敷养生自愈法 - 2016.pdf](https://itbooks.pipipan.com/fs/18113597-314933352) 亚马逊4.0 18 @@ -127,6 +131,8 @@ [刮痧拔罐针灸 \- 2015.pdf](https://itbooks.pipipan.com/fs/18113597-314933139) +[中医养生大宝典 - 2009.pdf](https://itbooks.pipipan.com/fs/18113597-314728528) [介绍](https://www.jianshu.com/p/4d96e6e6f556) + ### 拔罐刮痧 - [小儿推拿按摩专家教 (73种小儿常见病的推拿、按摩、刮痧疗法) - 2015.pdf](https://itbooks.pipipan.com/fs/18113597-314557948) @@ -146,11 +152,11 @@ - [李志刚教授之拔罐养生全程指导 (中医堂) \- 2014.pdf](https://itbooks.pipipan.com/fs/18113597-317261685) -- [刮痧拔罐祛百病 (国医绝学健康馆) \- 2012.pdf](https://itbooks.pipipan.com/fs/18113597-317261628) 亚马逊4.0 153 +- [刮痧拔罐祛百病 (国医绝学健康馆) \- 2012.pdf](https://itbooks.pipipan.com/fs/18113597-317261628) 亚马逊4.0 153 [介绍](https://www.jianshu.com/p/93f60ed84f5f) - [拔罐治病一招灵一招灵系列 -2009.pdf](https://itbooks.pipipan.com/fs/18113597-317261616) -- [拔罐祛病看这本就够 \- 2014.pdf](https://itbooks.pipipan.com/fs/18113597-317261604) 亚马逊4.5 40 +- [拔罐祛病看这本就够 \- 2014.pdf](https://itbooks.pipipan.com/fs/18113597-317261604) 亚马逊4.5 40 [介绍](https://www.jianshu.com/p/93f60ed84f5f) @@ -164,17 +170,17 @@ [一用就灵的名医偏方1000例(畅销升级版) (图说生活) - 2012.pdf](https://itbooks.pipipan.com/fs/18113597-317223559) -[一本书读懂偏方验方治病 (医药科普丛书)一本书读懂偏方验方治病 (医药科普丛书) \- 2013.pdf](https://itbooks.pipipan.com/fs/18113597-317223552) +[一本书读懂偏方验方治病 (医药科普丛书)一本书读懂偏方验方治病 (医药科普丛书) \- 2013.pdf](https://itbooks.pipipan.com/fs/18113597-317223552) [介绍](https://www.jianshu.com/p/10d89b946f09) -[小偏方治大病:巧医妇科常见病 \- 2014.pdf](https://itbooks.pipipan.com/fs/18113597-317223549) +[小偏方治大病:巧医妇科常见病 \- 2014.pdf](https://itbooks.pipipan.com/fs/18113597-317223549) [介绍](https://www.jianshu.com/p/9646d24a8104) [小偏方治百病 (国医绝学健康馆) \- 2010.pdf](https://itbooks.pipipan.com/fs/18113597-317223544) 亚马逊4.5星 162评论 [小偏方大功效 \- 2013.pdf](https://itbooks.pipipan.com/fs/18113597-317223540) -[外公是个老中医2--日常小病不用慌的经典老偏方- 2014.pdf](https://itbooks.pipipan.com/fs/18113597-317223537) +[外公是个老中医2--日常小病不用慌的经典老偏方- 2014.pdf](https://itbooks.pipipan.com/fs/18113597-317223537) [介绍](https://www.jianshu.com/p/10d89b946f09) -[外公是个老中医:全家烦恼一扫光的经典老偏方 \- 2013.pdf](https://itbooks.pipipan.com/fs/18113597-317223529) +[外公是个老中医:全家烦恼一扫光的经典老偏方 \- 2013.pdf](https://itbooks.pipipan.com/fs/18113597-317223529) [介绍](https://www.jianshu.com/p/f9e352c36222) [实用偏方秘方 \- 2007.pdf](https://itbooks.pipipan.com/fs/18113597-317223528) @@ -184,7 +190,7 @@ [民间乡野古方偏方4000首 - 2012.pdf](https://itbooks.pipipan.com/fs/18113597-317223507) -[妈妈传下来的美颜小偏方:两代美女中医跨越30年的养颜精华 - 2012.pdf](https://itbooks.pipipan.com/fs/18113597-317223504) +[妈妈传下来的美颜小偏方:两代美女中医跨越30年的养颜精华 - 2012.pdf](https://itbooks.pipipan.com/fs/18113597-317223504) [介绍](https://www.jianshu.com/p/e1cc78e210f5) [老中医的传世小偏方:全家都能用的日常小病治疗秘方 \- 2016.pdf](https://itbooks.pipipan.com/fs/18113597-317223496) @@ -208,7 +214,7 @@ [救护车到来前,你能做什么? \- 2016 4-10.pdf](https://itbooks.pipipan.com/fs/18113597-318827545) - [紧急救助员实用应急技术 \- 2008 3.5 2.pdf](https://itbooks.pipipan.com/fs/18113597-318827544) + [紧急救助员实用应急技术 \- 2008 3.5 2.pdf](https://itbooks.pipipan.com/fs/18113597-318827544) [介绍](https://www.jianshu.com/p/3bfbf4da161d) [家庭急救百问百答 (“金阳光”新农村丛书) \- 2010.pdf](https://itbooks.pipipan.com/fs/18113597-318827541) @@ -269,7 +275,7 @@ [国医精华·宫廷养生与美容 \- 2009.pdf](https://itbooks.pipipan.com/fs/18113597-319042503) -[爱美需要偏执——《时尚芭莎》美容专栏精选 \- 2013.pdf](https://itbooks.pipipan.com/fs/18113597-319042500) +[爱美需要偏执——《时尚芭莎》美容专栏精选 \- 2013.pdf](https://itbooks.pipipan.com/fs/18113597-319042500) [介绍](https://www.jianshu.com/p/eff6c3b25795) [8090都在偷偷看的美容书 - 2015.pdf](https://itbooks.pipipan.com/fs/18113597-319042498) @@ -300,6 +306,8 @@ [艾灸疗法治百病(第2版) (中国民间传统疗法丛书) - 2009.pdf](https://itbooks.pipipan.com/fs/18113597-317549982) +[图解掌纹健康密码 - 2010.pdf](https://itbooks.pipipan.com/fs/18113597-319645716) [介绍](https://www.jianshu.com/p/9646d24a8104) + ## 国学 [下载地址](https://itbooks.pipipan.com/dir/18113597-29730656-fb45e3/) From 4411cd002c136d2c8ce1b97b57f6c17cba4eef81 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 15 Apr 2019 15:38:20 +0800 Subject: [PATCH 044/122] Add books in books.md --- books.md | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/books.md b/books.md index c427725..125fa49 100755 --- a/books.md +++ b/books.md @@ -348,6 +348,89 @@ [2018最佳人工智能数据采集(爬虫)工具书下载](https://china-testing.github.io/scrap_books.html) +[书籍:Python机器学习蓝图第2版 Python Machine Learning Blueprints 2nd - 2019.pdf](https://www.jianshu.com/p/22f6ec0e43b2) + +[书籍:树莓派家庭自动化 Home Automation(python) with Raspberry Pi - 2019.pdf](https://www.jianshu.com/p/980be6b0511c) + +[书籍:Python游戏开发 Game Development Using Python - 2019.pdf](https://www.jianshu.com/p/094faefbdf57) + +[书籍:机器学习和图像处理实战 Practical Machine Learning and Image Processing - 2019.pdf](https://www.jianshu.com/p/48ede9e1fd64) + +[书籍: PySpark SQL Recipes_ With HiveQL, Dataframe and Graphframes - 2019.pdf](https://www.jianshu.com/p/8e3132c4a92d) + +[书籍:Python金融大数据分析 Python for Finance_ Mastering Data-Driven Finance 2nd - 2019.pdf](https://www.jianshu.com/p/eab39b725d0b) + +[书籍:掌握Python脚本系统管理 Mastering Python Scripting for System Administrators - 2019.pdf](https://www.jianshu.com/p/b66997e8965c) + +[书籍:掌握Python的网络和安全 Mastering Python for Networking and Security - 2018.pdf](https://www.jianshu.com/p/d62b9b517f98) + +[书籍:Python渗透测试实战 Practical Security Automation and Testing(python)- 2019.pdf](https://www.jianshu.com/p/cbec5147d6be) + +[书籍:Python AI项目实战 Practical Python AI Projects - 2018.pdf](https://www.jianshu.com/p/bf88cee353a8) + +[书籍:Python深度学习项目 Python Deep Learning Projects - 2018.Pdf](https://www.jianshu.com/p/1e4d3390d553) + +[书籍:Python强化学习项目 Python Reinforcement Learning Projects - 2018.pdf](https://www.jianshu.com/p/09752b149d3d) + +[书籍:python人工智能项目入门 Python Artificial Intelligence Projects for Beginners - 2018.pdf](https://www.jianshu.com/p/2446d02b2f7a) + +[书籍:python人工智能项目 Intelligent Projects Using Python - 2019](https://www.jianshu.com/p/e88a7332a98e) + +[书籍:Data Cleaning数据清洗-基于shell和python - 2018.pdf](https://www.jianshu.com/p/f1642e4737ff) + +[书籍:Learning Python for Forensics 2nd Edition - 2019.pdf](https://www.jianshu.com/p/4f28484ebd04) + +[书籍:Learn Web Development with Python - 2018.pdf](https://www.jianshu.com/p/3c1c3d1c4c54) + +[书籍:Pro Python 3 3rd -2019: Features and Tools for Professional Development .pdf](https://www.jianshu.com/p/5200156c6294) + +[书籍:Pro Python 3 3rd -2019: Features and Tools for Professional Development .pdf](https://www.jianshu.com/p/5200156c6294) + +[书籍:Daniel Arbuckle's Mastering Python - 2017](https://www.jianshu.com/p/88a335e3a411) + +[书籍:Python Testing Cookbook, 2nd Edition - 2018.pdf python测试cookbook](https://www.jianshu.com/p/e03642383ea7) + +[书籍: Simple Machine Learning for Programmers - 2018.pdf 程序员简单机器学习](https://www.jianshu.com/p/5c6f5c5d56f2) + +[书籍:python物联网人工智能 Hands-On Artificial Intelligence for IoT - 2019](https://www.jianshu.com/p/956bfaf1eb1e) + +[书籍:python物联网编程项目 Internet of Things Programming Projects - 2018](https://www.jianshu.com/p/01a345f0a94c) + +[书籍:python网络编程 Python Network Programming - 2019](https://www.jianshu.com/p/a2de7e67edd2) + +[书籍:python机器学习集合Cookbook Ensemble Machine Learning Cookbook - 2019](https://www.jianshu.com/p/29ee7bebdd72) + +[书籍:python自然语言处理(PyTorch) Natural Language Processing with PyTorch - 2019](https://www.jianshu.com/p/001938f92fdb) + +[书籍:python游戏编码 Coding Games in Python - 2018](https://www.jianshu.com/p/e9fb0185e688) + +[书籍:python图像处理 Image Operators - Image Processing in Python - 2019](https://www.jianshu.com/p/baf6d12be2d3) + +[书籍:python科学工程介绍 Python for Science and Engineering - 2019](https://www.jianshu.com/p/4e4a1610f3b9) + +[书籍:python数据科学傻瓜书 Python for Data Science For Dummies 2nd Edition - 2019](https://www.jianshu.com/p/7fa864c89611) + +[python人工智能机器人工具书籍: Python Robotics Projects - 2018](https://www.jianshu.com/p/6e1796891fc7) + +[python人工智能机器人工具书籍: Learn Robotics Programming(python and Raspberry Pi 3) - 2018](https://www.jianshu.com/p/691e88389f90) + +[机器学习PyTorch菜谱 PyTorch Recipes_ A Problem-Solution Approach - 2019.Pdf](https://www.jianshu.com/p/dcd46acae5c8) + +[推荐系统实战 Practical Recommender Systems(python) - 2019](https://www.jianshu.com/p/9c2a1dc394d7) + +[Python 3 面向对象编程(第3版) 中英文Python 3 Object-Oriented Programming 3rd Edition - 2018.pdf](https://www.jianshu.com/p/bdc3384c8a9f) + +[深入理解Flask 中英文版-英文更新至2018第2版](https://www.jianshu.com/p/f3c5d2936dd4) + +[python人工智能入门 Python Beginner's Guide to Artificial Intelligence - 2018](https://www.jianshu.com/p/4fbc9de5e031) + +[人工智能新书下载: Machine Learning and AI for Healthcare - 2019.pdf](https://www.jianshu.com/p/b34eb5670790) + +[Python自动化测试新书下载: 使用Selenium工具和Python自动化浏览器](https://www.jianshu.com/p/8477aa2de10c) + + + + ### python基础 From a9b19215e0927230987a5323f6c11c0611482fad Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 18 Apr 2019 09:10:26 +0800 Subject: [PATCH 045/122] update books! --- books.md | 5 ++++- society_books.md | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/books.md b/books.md index 125fa49..c8437af 100755 --- a/books.md +++ b/books.md @@ -873,6 +873,10 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 ## 测试 + +[书籍:ASTQB-BCS移动测试基础指南 Mobile Testing An ASTQB-BCS Foundation Guide - 2018.pdf](https://www.jianshu.com/p/a252732f8f1c) + + ### 试题 [软件测试综合面试题(高级测试)-试题.pdf](https://itbooks.pipipan.com/fs/18113597-316083198) @@ -1285,4 +1289,3 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 * 道家技术-手相手诊看相中医等钉钉群21734177 qq群:391441566 184175668 338228106 看手相、面相、舌相、抽签、体质识别。服务费50元每人次起。请联系钉钉或者微信pythontesting -![休息一下,领领红包,祝你中大奖](https://github.com/china-testing/python-api-tesing/blob/master/hongbao.png) diff --git a/society_books.md b/society_books.md index cdefd4a..079f2b6 100755 --- a/society_books.md +++ b/society_books.md @@ -34,6 +34,9 @@ [书籍: 上海读客 知行合一王阳明大合集(1+2+3+传习录)](https://www.jianshu.com/p/678ac669c2d5) +[书籍: 图解易经中的数学梅花易数 - 2007.pdf 故宫珍藏善本:梅花易数 - 2012.pdf](https://www.jianshu.com/p/11b741d90e28) + + ## 保健 [图解八段锦、五禽戏、易筋经-《国医绝学健康馆》编委会.pdf](https://itbooks.pipipan.com/fs/18113597-313704156) @@ -411,5 +414,3 @@ * 道家技术-手相手诊看相中医等钉钉群21734177 qq群:391441566 184175668 338228106 看手相、面相、舌相、抽签、体质识别。服务费50元每人次起。请联系钉钉或者微信pythontesting -![休息一下,领领红包,祝你中大奖](https://github.com/china-testing/python-api-tesing/blob/master/hongbao.png) - From 04eedaae5033ae4fe952aa311eac99f381df4509 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 24 Apr 2019 09:36:28 +0800 Subject: [PATCH 046/122] Add PySnooper in readme.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9f44f87..21a3492 100755 --- a/README.md +++ b/README.md @@ -943,6 +943,8 @@ Python实现的数据库。 代码调试的库。 + * PySnooper: 让你做print的事情,但不需要麻烦地添加很多语句,你只需要添加装饰器就可以得到运行日志,包括线运行,及对应变量的值。[链接](https://github.com/cool-RR/PySnooper/) [介绍](https://www.jianshu.com/p/5e9b79673f39) + * ipdb:IPython的 pdb。[链接](https://github.com/gotcha/ipdb) * pudb:pdb的替代。[链接](https://bitbucket.org/antocuni/pdb/) -- 推荐 From 97faa132baf3c6eb2c560840c28d08aeafb15533 Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 26 Apr 2019 12:40:25 +0800 Subject: [PATCH 047/122] Add fengshui books! --- bazi/sizi.py | 1 + society_books.md | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/bazi/sizi.py b/bazi/sizi.py index 10bd8a2..35ed060 100644 --- a/bazi/sizi.py +++ b/bazi/sizi.py @@ -12,6 +12,7 @@ 甲子日甲子时,子遥巳格,年月无庚辛申酉,丑绊午冲,离祖自立,贵。 若年月俱寅,逢申酉运,大富后退财。子亥卯未年月,行西运,贵。甲辰月亦贵。 酉月,只以正官格论,大贵。巳午戌月,平常。午月,甲死子冲,尤不吉。乙卯、乙巳月,主法死。 + -- 巳中戊想合子中癸,但是癸上甲克戊,不过巳中丙暗合辛,是甲所需。甲日得官星,子水得以邀巳火,癸戊相合。 甲寅日甲子时,拱丑中辛,贵。年月无庚辛申酉丑未,大贵。再甲寅月,孤克,惟憎道可。 亥子年月,四品贵。午月,行东北方运,亦贵。如酉丑巳等月,明有官煞,柱但有印,俱贵。 diff --git a/society_books.md b/society_books.md index 079f2b6..ff0e0ea 100755 --- a/society_books.md +++ b/society_books.md @@ -26,6 +26,8 @@ [PDF编辑器 Adobe_Acrobat_Pro9_160215.rar](https://home.pipipan.com/#item-files/action-index/folder_id-29785334) [secureCRT 7.2](https://itbooks.pipipan.com/fs/18113597-310081425) + +[风水书籍汇总](https://china-testing.github.io/fengshui_books.html) # 社科书籍 @@ -36,6 +38,19 @@ [书籍: 图解易经中的数学梅花易数 - 2007.pdf 故宫珍藏善本:梅花易数 - 2012.pdf](https://www.jianshu.com/p/11b741d90e28) +[月亮与六便士(全本未删节插图珍藏版,毛姆经典代表作2017全新畅销译本)(作家榜推荐).pdf](https://itbooks.pipipan.com/fs/18113597-368444414) + +[原则(华尔街投资人、桥水公司创始人雷·达里奥白手起家40多年的生活与工作原则)-2018.pdf](https://itbooks.pipipan.com/fs/18113597-368444404) + +[三体全集-2012.pdf](https://itbooks.pipipan.com/fs/18113597-368444375) + +[债务危机 - 2019.pdf](https://itbooks.pipipan.com/fs/18113597-368444327) + +[人类简史:从动物到上帝 - 2014.pdf](https://itbooks.pipipan.com/fs/18113597-368444198) + +[见识城邦·童年的消逝 - 2015.pdf](https://itbooks.pipipan.com/fs/18113597-368444177) + + ## 保健 From 7a6231e406307fecd1a48f83b97c8cbf72d006f8 Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 28 Apr 2019 13:56:05 +0800 Subject: [PATCH 048/122] Add pyppeteer --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 21a3492..b8ae186 100755 --- a/README.md +++ b/README.md @@ -189,9 +189,11 @@ wechat: pythontesting * splinter - web UI测试工具,基于selnium封装。 [链接](https://github.com/cobrateam/splinter) * selenium - web UI自动化测试。 [链接](https://github.com/SeleniumHQ/selenium/tree/master/py) --推荐 [文档参考](https://china-testing.github.io/selenium_example5.html) - + * mechanize- Python中有状态的程序化Web浏览。[链接](https://github.com/python-mechanize/mechanize) + * pyppeteer- chrome/chromium自动化。[链接](https://github.com/miyakogi/pyppeteer) + * selene - 使用Python + Ajax支持+ PageObjects + Widgets进行简明UI测试 [链接](https://github.com/yashaka/selene/) * hitch - 基于服务的应用程序的高级集成测试框架。[链接](https://github.com/hitchtest/hitch) From 957a3af032813a737c90c9495d9522a5611622cb Mon Sep 17 00:00:00 2001 From: andrew Date: Sun, 5 May 2019 23:17:04 +0800 Subject: [PATCH 049/122] Add luohou.py --- bazi/ganzhi.py | 107 ++++++++++++++++++++++++++++++------------------- bazi/luohou.py | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+), 42 deletions(-) create mode 100644 bazi/luohou.py diff --git a/bazi/ganzhi.py b/bazi/ganzhi.py index f1618e5..2536b92 100644 --- a/bazi/ganzhi.py +++ b/bazi/ganzhi.py @@ -2,31 +2,44 @@ # -*- coding: utf-8 -*- # Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 # CreateDate: 2019-2-21 -import collections +from collections import OrderedDict from bidict import bidict Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] +zhi_time = {"子":'23-1', "丑":'1-3', "寅":'3-5', "卯":'5-7', "辰":'7-9', + "巳":'9-11', "午":'11-13', "未":'13-15', "申":'15-17', "酉":'17-19', + "戌":'19-21', "亥":'21-23'} + +wuhangs = { + '金':"庚辛申酉", + '木':"甲乙寅卯", + '水':"壬癸子亥", + '火':"丙丁巳午", + '土':"戊己丑辰未戌", +} + zhi5 = { - "子":{"癸":8}, - "丑":{"辛":1,"癸":2, "己":5}, - "寅":{"戊":1,"丙":2, "甲":5}, - "卯":{"乙":8}, - "辰":{"癸":1,"乙":2, "戊":5}, - "巳":{"庚":1,"戊":2, "丙":5}, - "午":{"己":3, "丁":5}, - "未":{"乙":1,"丁":2, "己":5}, - "申":{"戊":1,"壬":2, "庚":5}, - "酉":{"辛":8}, - "戌":{"丁":1,"辛":2, "戊":5}, - "亥":{"甲":3, "壬":5}} + "子":OrderedDict({"癸":8}), + "丑":OrderedDict({"辛":1,"癸":2, "己":5}), + "寅":OrderedDict({"戊":1,"丙":2, "甲":5}), + "卯":OrderedDict({"乙":8}), + "辰":OrderedDict({"癸":1,"乙":2, "戊":5}), + "巳":OrderedDict({"庚":1,"戊":2, "丙":5}), + "午":OrderedDict({"己":3, "丁":5}), + "未":OrderedDict({"乙":1,"丁":2, "己":5}), + "申":OrderedDict({"戊":1,"壬":2, "庚":5}), + "酉":OrderedDict({"辛":8}), + "戌":OrderedDict({"丁":1,"辛":2, "戊":5}), + "亥":OrderedDict({"甲":3, "壬":5})} ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] Week = ["日", "一", "二", "三", "四", "五", "六"] jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑","白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"] +jis = {0:'冬', 1:'春', 2:'夏', 3:'秋', 4:'冬'} ymc = ["十一", "十二", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十" ] rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"] @@ -34,44 +47,54 @@ ten_deities = { '甲':bidict({'甲':'比肩', "乙":'劫', "丙":'食', "丁":'伤', "戊":'偏财', "己":'财', "庚":'杀', "辛":'官', "壬":'偏印', "癸":'印', "子":'沐浴', - "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', - "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生'}), + "丑":'冠带', "寅":'建', "卯":'帝旺', "辰":'衰', "巳":'病', "午":'死', + "未":'墓', "申":'绝', "酉":'胎', "戌":'养', "亥":'长生', '库':'未_', + '本':'木', '克':'土', '被克':'金', '生我':'水', '生':'火','合':'己','冲':'庚'}), '乙':bidict({'甲':'劫', "乙":'比肩', "丙":'伤', "丁":'食', "戊":'财', "己":'偏财', "庚":'官', "辛":'杀', "壬":'印',"癸":'偏印', "子":'病', "丑":'衰', "寅":'帝旺', "卯":'建', "辰":'冠带', "巳":'沐浴', "午":'长生', - "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死'}), + "未":'养', "申":'胎', "酉":'绝', "戌":'墓', "亥":'死', '库':'未_', + '本':'木', '克':'土', '被克':'金', '生我':'水', '生':'火','合':'庚','冲':'辛'}), '丙':bidict({'丙':'比肩', "丁":'劫', "戊":'食', "己":'伤', "庚":'偏财', "辛":'财', "壬":'杀', "癸":'官', "甲":'偏印', "乙":'印',"子":'胎', "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', - "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝', '库':'戌_', + '本':'火', '克':'金', '被克':'水', '生我':'木', '生':'土','合':'辛','冲':'壬'}), '丁':bidict({'丙':'劫', "丁":'比肩', "戊":'伤', "己":'食', "庚":'财', "辛":'偏财', "壬":'官', "癸":'杀', "甲":'印',"乙":'偏印', "子":'绝', "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', - "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎', '库':'戌_', + '本':'火', '克':'金', '被克':'水', '生我':'木', '生':'土','合':'壬','冲':'癸'}), '戊':bidict({'戊':'比肩', "己":'劫', "庚":'食', "辛":'伤', "壬":'偏财', "癸":'财', "甲":'杀', "乙":'官', "丙":'偏印', "丁":'印',"子":'胎', "丑":'养', "寅":'长生', "卯":'沐浴', "辰":'冠带', "巳":'建', "午":'帝旺', - "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝'}), + "未":'衰', "申":'病', "酉":'死', "戌":'墓', "亥":'绝', '库':'辰_', + '本':'土', '克':'水', '被克':'木', '生我':'火', '生':'金','合':'癸','冲':''}), '己':bidict({'戊':'劫', "己":'比肩', "庚":'伤', "辛":'食', "壬":'财', "癸":'偏财', "甲":'官', "乙":'杀', "丙":'印',"丁":'偏印',"子":'绝', "丑":'墓', "寅":'死', "卯":'病', "辰":'衰', "巳":'帝旺', "午":'建', - "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎'}), + "未":'冠带', "申":'沐浴', "酉":'长生', "戌":'养', "亥":'胎', '库':'辰_', + '本':'土', '克':'水', '被克':'木', '生我':'火', '生':'金','合':'甲','冲':''}), '庚':bidict({'庚':'比肩', "辛":'劫', "壬":'食', "癸":'伤', "甲":'偏财', "乙":'财', "丙":'杀', "丁":'官', "戊":'偏印', "己":'印',"子":'死', "丑":'墓', "寅":'绝', "卯":'胎', "辰":'养', "巳":'长生', "午":'沐浴', - "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病'}), + "未":'冠带', "申":'建', "酉":'帝旺', "戌":'衰', "亥":'病', '库':'丑_', + '本':'金', '克':'木', '被克':'火', '生我':'土', '生':'水','合':'乙','冲':'甲'}), '辛':bidict({'庚':'劫', "辛":'比肩', "壬":'伤', "癸":'食', "甲":'财', "乙":'偏财', "丙":'官', "丁":'杀', "戊":'印', "己":'偏印', "子":'长生', "丑":'养', "寅":'胎', "卯":'绝', "辰":'墓', "巳":'死', "午":'病', - "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴'}), + "未":'衰', "申":'帝旺', "酉":'建', "戌":'冠带', "亥":'沐浴', '库':'丑_', + '本':'金', '克':'木', '被克':'火', '生我':'土', '生':'水','合':'丙','冲':'乙'}), '壬':bidict({'壬':'比肩', "癸":'劫', "甲":'食', "乙":'伤', "丙":'偏财', "丁":'财', "戊":'杀', "己":'官', "庚":'偏印', "辛":'印',"子":'帝旺', "丑":'衰', "寅":'病', "卯":'死', "辰":'墓', "巳":'绝', "午":'胎', - "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建'}), + "未":'养', "申":'长生', "酉":'沐浴', "戌":'冠带', "亥":'建', '库':'辰_', + '本':'水', '克':'火', '被克':'土', '生我':'金', '生':'木','合':'丁','冲':'丙'}), '癸':bidict({'壬':'劫', "癸":'比肩', "甲":'伤', "乙":'食', "丙":'财', "丁":'偏财', "戊":'官', "己":'杀', "庚":'印',"辛":'偏印', "子":'建', "丑":'冠带', "寅":'沐浴', "卯":'长生', "辰":'养', "巳":'胎', "午":'绝', - "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺'}), + "未":'墓', "申":'死', "酉":'病', "戌":'衰', "亥":'帝旺', '库':'辰_', + '本':'水', '克':'火', '被克':'土', '生我':'金', '生':'木','合':'戊','冲':'丁'}), } @@ -79,13 +102,14 @@ "子":"鼠", "丑":"牛", "寅":"虎", "卯":"兔", "辰":"龙", "巳":"蛇", "午":"马", "未":"羊", "申":"猴", "酉":"鸡", "戌":"狗", "亥":"猪"}) + zhi_atts = { "子":{"冲":"午", "刑":"卯", "被刑":"卯", "合":("申","辰"), "会":("亥","丑"), '害':'未', '破':'酉', "六合":"丑","暗合":"戌",}, "丑":{"冲":"未", "刑":"戌", "被刑":"未", "合":("巳","酉"), "会":("子","亥"), '害':'午', '破':'辰', "六合":"子","暗合":"寅",}, "寅":{"冲":"申", "刑":"巳", "被刑":"申", "合":("午","戌"), "会":("卯","辰"), '害':'巳', '破':'亥', "六合":"亥","暗合":"丑",}, "卯":{"冲":"酉", "刑":"子", "被刑":"子", "合":("未","亥"), "会":("寅","辰"), '害':'辰', '破':'午', "六合":"戌","暗合":"申",}, "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑', "六合":"酉","暗合":"丑",}, - "巳":{"冲":"未", "刑":"申", "被刑":"寅", "合":("酉","丑"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申","暗合":"酉",}, + "巳":{"冲":"亥", "刑":"申", "被刑":"寅", "合":("酉","丑"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申","暗合":"酉",}, "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯', "六合":"未","暗合":"亥",}, "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午","暗合":"丑",}, "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳', "六合":"巳","暗合":"卯",}, @@ -105,7 +129,7 @@ } gan_chongs = {("甲", "庚"): "相冲", ("乙", "辛"): "相冲", - ("丙", "壬"): "相冲", ("丁", "癸"): "相冲",} + ("丙", "壬"): "相冲", ("丁", "癸"): "相冲",} chongs = { "甲":"庚", "庚":"甲","乙":"辛", "辛":"乙","丙":"壬", "壬":"丙", "丁":"癸", @@ -115,20 +139,17 @@ zhi_6hes = { - ("子", "丑"): "化土 子合丑福轻,丑合子福盛", - ("寅", "亥"): "化木 寅合亥福清,亥合寅福慢", - ("卯", "戌"): "化火 戌合卯福虚,卯合戌福厚", - ("辰", "酉"): "化金 辰合酉福弱,酉合辰大利", - ("巳", "申"): "化水 已合申福慢,申合巳官气盛", - ("午", "未"): "化土 午合未福慢,未合午大利", + "子丑": "土", + "寅亥": "木", + "卯戌": "火", + "酉辰": "金", + "申巳": "水", + "未午": "土", } -zhi_3hes = { - ("申", "子", "辰"): "水 马在寅", - ("巳", "酉", "丑"): "金 马在亥", - ("寅", "午", "戌"): "火 马在申", - ("亥", "卯", "未"): "木 马在巳", -} +zhi_3hes = {"申子辰": "水 寅","巳酉丑": "金 亥", "寅午戌": "火 申", "亥卯未": "木 巳"} +gong_he = {"申辰": '子', "巳丑": '酉', "寅戌": '午', "亥未": '卯', + "辰申": '子', "丑巳": '酉', "戌寅": '午', "未亥": '卯',} zhi_half_3hes = { ("申", "子"): "化水 马在寅", @@ -146,11 +167,13 @@ } zhi_huis = { - ("亥", "子", "丑"): "化水", - ("寅", "卯", "辰"): "化木", - ("巳", "午", "未"): "化火", - ("申", "酉", "戌"): "化金", + "亥子丑": "水", + "寅卯辰": "木", + "巳午未": "火", + "申酉戌": "金", } +gong_hui = {"亥丑": '子', "寅辰": '卯', "巳未": '午', "申戌": '酉', + "丑亥": '子', "辰寅": '卯', "未巳": '午', "戌申": '酉',} zhi_chongs = { ("子", "午"): "相冲", diff --git a/bazi/luohou.py b/bazi/luohou.py new file mode 100644 index 0000000..0771130 --- /dev/null +++ b/bazi/luohou.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 +# 鸣谢 https://github.com/yuangu/sxtwl_cpp/tree/master/python +# CreateDate: 2019-2-21 + +import argparse +import sxtwl +import time +import datetime +import collections + +from ganzhi import Gan, Zhi, ymc, rmc, zhi_time, jis + + +year_hous = {'子':'癸酉', '丑':'甲戌', '寅':'丁亥', '卯':'甲子', '辰':'乙丑', + '巳':'甲寅', '午':'丁卯', '未':'甲辰', '申':'己巳', '酉':'甲午', + '戌':'丁未', '亥':'甲申'} + +ji_hous = {'春':'乙卯','夏':'丙午','秋':'庚申','冬':'辛酉'} +yue_hous = {'正':'亥', '二':'子', '三':'丑', '四':'寅', '五':'卯', '六':'辰', + '七':'巳', '八':'午', '九':'未', '十':'申', '十一':'酉', '十二':'戌'} +shi_hous = {'子':'丑午', '丑':'巳亥', '寅':'寅午', '卯':'辰戌', '辰':'巳丑', + '巳':'辰戌', '午':'卯申', '未':'午辰', '申':'戌丑', '酉':'子午', + '戌':'卯午', '亥':'辰卯'} + +Gans = collections.namedtuple("Gans", "year month day") +Zhis = collections.namedtuple("Zhis", "year month day") + + +description = ''' +# 年罗猴日 +$ python luohou.py -d '2019 6 16' + +''' + +parser = argparse.ArgumentParser(description=description, + formatter_class=argparse.RawTextHelpFormatter) +parser.add_argument('-d', action="store", help=u'year',default="") +parser.add_argument('--version', action='version', + version='%(prog)s 0.1 Rongzhong xu 2019 05 05') +options = parser.parse_args() + +Gans = collections.namedtuple("Gans", "year month day") +Zhis = collections.namedtuple("Zhis", "year month day") + +if options.d: + year, month, day = options.d.split() + d = datetime.date(int(year), int(month), int(day)) +else: + d = datetime.datetime.today() + +def get_hou(d): + lunar = sxtwl.Lunar(); + cal_day = lunar.getDayBySolar(d.year, d.month, d.day) + + + # 计算甲干相合 + gans = Gans(year=Gan[cal_day.Lyear2.tg], month=Gan[cal_day.Lmonth2.tg], + day=Gan[cal_day.Lday2.tg]) + zhis = Zhis(year=Zhi[cal_day.Lyear2.dz], month=Zhi[cal_day.Lmonth2.dz], + day=Zhi[cal_day.Lday2.dz]) + + + print("公历:", end='') + print("{}年{}月{}日".format(cal_day.y, cal_day.m, cal_day.d), end='') + + Lleap = "闰" if cal_day.Lleap else "" + print("\t农历:", end='') + print("{}年{}{}月{}日 ".format(cal_day.Lyear0 + 1984, Lleap, ymc[cal_day.Lmc], rmc[cal_day.Ldi]), end='') + print('-'.join([''.join(item) for item in zip(gans, zhis)]), end='') + + print("\t杀师时", end=' ') + for item in shi_hous[zhis[2]]: + print(item + zhi_time[item], end=' ') + + + day_ganzhi = gans[2] + zhis[2] + + if day_ganzhi == year_hous[zhis[0]]: + print("\t年猴:{}年{}日".format(zhis[0], day_ganzhi), end=' ') + + + if zhis[2] == yue_hous[ymc[cal_day.Lmc]]: + print("\t月罗:{}日".format(zhis[2]), end=' ') + + if day_ganzhi in tuple(ji_hous.values()): + birthday = d + for i in range(30): + day_ = sxtwl.Lunar().getDayBySolar(birthday.year, birthday.month, birthday.day) + if day_.qk != -1: + ji = jis[(day_.qk + 3)//6] + break + birthday += datetime.timedelta(days=-1) + + if day_ganzhi == ji_hous[ji]: + print("\t季猴:{}季{}日".format(ji, ji_hous[ji]), end=' ') + print() + + +get_hou(d) + +for i in range(1,366): + d_ = d + datetime.timedelta(days=i) + get_hou(d_) \ No newline at end of file From 53d56ed3b5cd38d6eedf62e45d08f203bb4dcffa Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 6 May 2019 10:15:21 +0800 Subject: [PATCH 050/122] luohou.py 1.0 --- bazi/luohou.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/bazi/luohou.py b/bazi/luohou.py index 0771130..a6ae006 100644 --- a/bazi/luohou.py +++ b/bazi/luohou.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: 钉钉或微信pythontesting 钉钉群21734177 技术支持qq群:630011153 144081101 +# 代码地址 https://github.com/china-testing/python-api-tesing/blob/master/bazi/luohou.py # 鸣谢 https://github.com/yuangu/sxtwl_cpp/tree/master/python # CreateDate: 2019-2-21 @@ -30,13 +31,14 @@ description = ''' # 年罗猴日 -$ python luohou.py -d '2019 6 16' +$ python luohou.py -d "2019 6 16" ''' parser = argparse.ArgumentParser(description=description, formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('-d', action="store", help=u'year',default="") +parser.add_argument('-n', action="store", help=u'year',default=32, type=int) parser.add_argument('--version', action='version', version='%(prog)s 0.1 Rongzhong xu 2019 05 05') options = parser.parse_args() @@ -68,21 +70,22 @@ def get_hou(d): Lleap = "闰" if cal_day.Lleap else "" print("\t农历:", end='') print("{}年{}{}月{}日 ".format(cal_day.Lyear0 + 1984, Lleap, ymc[cal_day.Lmc], rmc[cal_day.Ldi]), end='') + print(' \t',end='') print('-'.join([''.join(item) for item in zip(gans, zhis)]), end='') - print("\t杀师时", end=' ') + print("\t杀师时:", end='') for item in shi_hous[zhis[2]]: - print(item + zhi_time[item], end=' ') + print(item + zhi_time[item], end='') day_ganzhi = gans[2] + zhis[2] if day_ganzhi == year_hous[zhis[0]]: - print("\t年猴:{}年{}日".format(zhis[0], day_ganzhi), end=' ') + print(" \t年猴:{}年{}日".format(zhis[0], day_ganzhi), end=' ') if zhis[2] == yue_hous[ymc[cal_day.Lmc]]: - print("\t月罗:{}日".format(zhis[2]), end=' ') + print(" \t月罗:{}日".format(zhis[2]), end=' ') if day_ganzhi in tuple(ji_hous.values()): birthday = d @@ -94,12 +97,12 @@ def get_hou(d): birthday += datetime.timedelta(days=-1) if day_ganzhi == ji_hous[ji]: - print("\t季猴:{}季{}日".format(ji, ji_hous[ji]), end=' ') + print(" \t季猴:{}季{}日".format(ji, ji_hous[ji]), end=' ') print() get_hou(d) -for i in range(1,366): +for i in range(1,options.n): d_ = d + datetime.timedelta(days=i) get_hou(d_) \ No newline at end of file From 2728c444cb21d1c3c29f801f1a12d44d052a5016 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 20 May 2019 09:46:51 +0800 Subject: [PATCH 051/122] =?UTF-8?q?Add=20book=20=E5=8C=BB=E5=AD=A6?= =?UTF-8?q?=E5=BF=83=E6=82=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/society_books.md b/society_books.md index ff0e0ea..031454f 100755 --- a/society_books.md +++ b/society_books.md @@ -10,6 +10,7 @@ * [保健](#保健) * [中医](#中医) * [中医教材](#中医教材) + * [中医经典](#中医经典) * [中草药](#中草药) * [医学科普](#医学科普) * [推拿](#推拿) @@ -70,7 +71,12 @@ [中药学-中医药出版社 十版 大学教材.pdf](https://itbooks.pipipan.com/fs/18113597-308188125) +### 中医经典 +[医学心悟 (中医临床必读丛书) - 2006.pdf](https://itbooks.pipipan.com/fs/18113597-375127871) + +[医学心悟 (新安医学名著丛书) - 2009.pdf](https://itbooks.pipipan.com/fs/18113597-375127820) + ### 中草药 From c4e8013acac8bdab0d7058fc0d02ea750473c498 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 10 Jun 2019 14:40:09 +0800 Subject: [PATCH 052/122] Add sqlflow in readme! --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8ae186..84188be 100755 --- a/README.md +++ b/README.md @@ -993,6 +993,7 @@ Python实现的数据库。 * [Theano](https://github.com/Theano/Theano) - 用于快速数值计算的库. --推荐 * [Shogun](https://github.com/shogun-toolbox/shogun/) C++实现,为包括Python在内的多种语言和平台提供统一的接口。 它侧重于可扩展的内核方法,以解决回归和分类问题。 Shogun关注生物信息学,可以扩展以处理超过1000万个数据样本,同时保持准确性。 * [CNTK](https://github.com/Microsoft/CNTK/tree/master/bindings/python) 微软的深度学习框架。 +* [sqlflow](https://github.com/sql-machine-learning/sqlflow) SQLFlow是连接SQL引擎的桥梁,例如 MySQL,Hive,SparkSQL或SQL Server,带有TensorFlow和其他机器学习工具包。 SQLFlow扩展了SQL语言,以支持模型训练,预测和推理。 国内唯一的技术大公司 阿里巴巴出品! ## DevOps工具(DevOps Tools) From 6e01cefccc989d07038dae3b76cddd97cec716b3 Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 11 Jun 2019 11:13:04 +0800 Subject: [PATCH 053/122] Add pytest-html in readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 84188be..8d2266a 100755 --- a/README.md +++ b/README.md @@ -312,6 +312,8 @@ autopy、WATSUP、winGuiAuto因为较长时间未更新未收录 * pyccuracy- 行为驱动 web验收测试框架。 [链接](https://github.com/heynemann/pyccuracy) * pytest-bdd- 基于pytest的行为驱动 测试框架。 [链接](https://github.com/pytest-dev/pytest-bdd) + + * pytest-html- pytest生成html插件。 [链接](https://github.com/pytest-dev/pytest-html/) * ddt- 数据驱动测试。 [链接](https://github.com/txels/ddt) From b1430584e4b307ad5dafe96c921f2e12c1408eff Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 13 Jun 2019 19:06:51 +0800 Subject: [PATCH 054/122] modify jsonschema in ReadME --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8d2266a..751d401 100755 --- a/README.md +++ b/README.md @@ -804,7 +804,7 @@ django-viewlet因为github星级太少而未收录 * colander:验证并反序列化XML、JSON、HTML表单获取的数据。[链接](https://github.com/Pylons/colander/blob/master/docs/index.rst) - * colander:json模式的实现。[链接](https://github.com/Julian/jsonschema) + * jsonschema:json模式的实现。[链接](https://github.com/Julian/jsonschema) * kmatch:一种用于匹配/验证/筛选 Python 字典的语言。[链接]() From 184ad769d133e440a7cb909f468523ab7459fcab Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 17 Jun 2019 16:03:20 +0800 Subject: [PATCH 055/122] Add Macaca in ReadME --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 751d401..46d6b8e 100755 --- a/README.md +++ b/README.md @@ -300,6 +300,8 @@ autopy、WATSUP、winGuiAuto因为较长时间未更新未收录 * trial - Twisted的单元测试框架,基于unittest。[链接](http://twistedmatrix.com/trac/wiki/TwistedTrial) * Robot Framework- 通用的python测试框架,易于上手,生成的报告比较好看,适合小型公司使用,支持关键字和数据等驱动,系业界内很出名的框架。不过因为写用例不能很灵活的应用python,需要大量的python封装,大公司通常使用pytest,django,flask之类的库自行开发。 [链接](https://github.com/robotframework/robotframework) + + * macaca - Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,环境配套,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。 [链接](https://github.com/alibaba/macaca/blob/master/README.zh.md) * green- 彩色(命令行能显示多种颜色)的单元测试框架。 [链接](https://github.com/CleanCut/green) From 2e7ba3e98cc75d684265fd7c135d6116e2c8b301 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 12 Aug 2019 09:57:50 +0800 Subject: [PATCH 056/122] sync readme --- README.md | 158 ++++++++++++++++-- .../api_demo/__pycache__/Model.cpython-37.pyc | Bin 0 -> 2017 bytes flask/api_demo/__pycache__/app.cpython-37.pyc | Bin 0 -> 520 bytes .../__pycache__/config.cpython-37.pyc | Bin 0 -> 359 bytes flask/api_demo/__pycache__/run.cpython-37.pyc | Bin 0 -> 579 bytes flask/api_demo/migrations/README | 1 + .../migrations/__pycache__/env.cpython-37.pyc | Bin 0 -> 2268 bytes flask/api_demo/migrations/alembic.ini | 45 +++++ flask/api_demo/migrations/env.py | 96 +++++++++++ flask/api_demo/migrations/script.py.mako | 24 +++ .../migrations/versions/254c8dd6c713_.py | 42 +++++ .../__pycache__/254c8dd6c713_.cpython-37.pyc | Bin 0 -> 1190 bytes .../__pycache__/Category.cpython-37.pyc | Bin 0 -> 2186 bytes .../__pycache__/Comment.cpython-37.pyc | Bin 0 -> 1396 bytes .../__pycache__/Hello.cpython-37.pyc | Bin 0 -> 609 bytes practices/tk/optionDB.txt | 61 ++++++- 16 files changed, 410 insertions(+), 17 deletions(-) create mode 100644 flask/api_demo/__pycache__/Model.cpython-37.pyc create mode 100644 flask/api_demo/__pycache__/app.cpython-37.pyc create mode 100644 flask/api_demo/__pycache__/config.cpython-37.pyc create mode 100644 flask/api_demo/__pycache__/run.cpython-37.pyc create mode 100644 flask/api_demo/migrations/README create mode 100644 flask/api_demo/migrations/__pycache__/env.cpython-37.pyc create mode 100644 flask/api_demo/migrations/alembic.ini create mode 100644 flask/api_demo/migrations/env.py create mode 100644 flask/api_demo/migrations/script.py.mako create mode 100644 flask/api_demo/migrations/versions/254c8dd6c713_.py create mode 100644 flask/api_demo/migrations/versions/__pycache__/254c8dd6c713_.cpython-37.pyc create mode 100644 flask/api_demo/resources/__pycache__/Category.cpython-37.pyc create mode 100644 flask/api_demo/resources/__pycache__/Comment.cpython-37.pyc create mode 100644 flask/api_demo/resources/__pycache__/Hello.cpython-37.pyc diff --git a/README.md b/README.md index 46d6b8e..c34d323 100755 --- a/README.md +++ b/README.md @@ -110,6 +110,8 @@ Table of Contents * [表单(Forms)](#表单forms) * [函数式编程(Functional Programming)](#函数式编程functional-programming) * [图形用户界面(GUI)](#图形用户界面gui) + * [游戏开发(Game Development)](#游戏开发game-development) + * [地理位置(Geolocation)](#地理位置geolocation) * [HTML操作(HTML Manipulation)](#html操作html-manipulation) * [HTTP](#http) * [硬件(Hardware)](#硬件hardware) @@ -162,8 +164,17 @@ Table of Contents * [Web 框架(Web Frameworks)](#web-框架web-frameworks) * [WebSocket](#websocket) * [监控](#监控) + * [Services](#services) + * [Continuous Integration](#continuous-integration) + * [Code Quality](#code-quality) + * [Resources](#resources) + * [Podcasts](#podcasts) + * [Twitter](#twitter) + * [Websites](#websites) + * [Weekly](#weekly) * [持续更新](#持续更新) - + * [Websites](#websites-1) + * [Weekly](#weekly-1) # Python测试开发库 @@ -527,7 +538,7 @@ scikits.talkbox 因长时间未更新未收录 最近版本参见原文:https: * sanction:一个超级简单的OAuth2 客户端实现。[链接](https://github.com/demianbrecht/sanction) - * PyJWT:JSON Web 令牌草案 01。[链接](https://github.com/jpadilla/pyjwt) + * PyJWT:JSON Web 令牌python实现。[链接](https://github.com/jpadilla/pyjwt) * python-jwt:生成和验证 JSON Web 令牌。[链接](https://github.com/davedoesdev/python-jwt) @@ -540,6 +551,7 @@ scikits.talkbox 因长时间未更新未收录 ## 内置类增强(Built-in Classes Enhancement) +* [dataclasses](https://docs.python.org/3/library/dataclasses.html) - (Python standard library) Data classes. * [attrs](https://github.com/python-attrs/attrs) - 替换类定义中的__init__,__eq__,__repr__等样板文件。 * [bidict](https://github.com/jab/bidict) - 高效的双向字典。 * [Box](https://github.com/cdgriffith/Box) - 点符号访问的Python字典 @@ -607,13 +619,15 @@ django-viewlet因为github星级太少而未收录 ## 代码分析和lint(Code Analysis) - * coala:语言独立和易于扩展的代码分析应用程序。[链接](https://pypi.python.org/pypi/coala/0.12.0.dev20171216122902) + * coala:语言独立和易于扩展的代码分析应用程序。[coala](https://github.com/coala/coala/) * code2flow:把你的 Python 和 JavaScript 代码转换为流程图。暂时无法继续维护。[链接](https://github.com/scottrogowski/code2flow) * pycallgraph:这个库可以把你的Python 应用的流程(调用图)进行可视化。[链接](https://github.com/gak/pycallgraph) * Flake8:模块化源码检查工具: pep8, pyflakes 以及 co。[链接](https://gitlab.com/pycqa/flake8) + +* [black](https://github.com/ambv/black) - The uncompromising Python code formatter. * Pylint:一个完全可定制的源码分析器。[链接](https://github.com/PyCQA/pylint) @@ -629,7 +643,9 @@ django-viewlet因为github星级太少而未收录 * pep8 :python风格检查。[链接](https://github.com/PyCQA/pycodestyle) --推荐 - * prospector - 分析Python代码并输出有关错误,潜在问题,违反常规和复杂性的信息的工具。[链接](https://github.com/landscapeio/prospector) + * prospector - 分析Python代码并输出有关错误,潜在问题,违反常规和复杂性的信息的工具。[prospector](https://github.com/PyCQA/prospector) + + * [pyre-check](https://github.com/facebook/pyre-check) - Performant type checking. ## 命令行工具(Command-line Tools) @@ -768,8 +784,6 @@ django-viewlet因为github星级太少而未收录 * cryptography:这个软件包意在提供密码学基本内容和方法提供给 Python 开发者。[链接](https://github.com/pyca/cryptography/blob/master/docs/index.rst) - * hashids:在 Python 中实现 hashids 。[链接](https://github.com/davidaurelio/hashids-python) - * Paramiko:SSHv2 协议的 Python (2.6+, 3.3+) ,提供客户端和服务端的功能。[链接](https://github.com/paramiko/paramiko/) -- 推荐 * Passlib:安全密码存储/哈希库,[链接](https://bitbucket.org/ecollins/passlib/overview) @@ -828,6 +842,12 @@ django-viewlet因为github星级太少而未收录 * bokeh:用Python进行交互式web绘图。[链接](https://github.com/bokeh/bokeh) --推荐 [英文快速入门](http://bokeh.pydata.org/en/latest/docs/user_guide/quickstart.html) [中文快速入门](https://github.com/DonaldDai/Bokeh-CN) * ggplot:ggplot的 Python移植。[链接](https://github.com/yhat/ggpy) -荐 + + * [plotnine](https://github.com/has2k1/plotnine) - ggplot的 Python移植 -荐 + + * [Dash](https://plot.ly/dash/) - 基于Flask,React和Plotly, 针对分析Web应用程序。 + + [awesome-dash](https://github.com/ucg8j/awesome-dash) * plotly:交互式基于浏览器的绘图。[链接](https://github.com/plotly/plotly.py) @@ -1202,6 +1222,8 @@ Python版本和环境管理 * Deform:Python HTML 表单生成库,受到了 formish 表单生成库的启发。[链接](https://github.com/Pylons/deform) * django-bootstrap3:集成了 Bootstrap 3 的 Django。[链接](https://github.com/dyve/django-bootstrap3) --推荐 + + * [django-bootstrap4](https://github.com/zostera/django-bootstrap4) - Django集成Bootstrap 4. * django-crispy-forms:非常优雅且 DRY(Don't repeat yourself) 的方式来创建美观的表单。[链接](https://github.com/dyve/django-bootstrap3) --推荐 @@ -1238,6 +1260,7 @@ Python版本和环境管理 * PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5。[链接](https://riverbankcomputing.com/software/pyqt/intro) * PySide:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4。[链接](https://wiki.qt.io/PySide) * Tkinter:Python GUI 标准库。[链接](https://wiki.python.org/moin/TkInter) + * [PySimpleGUI](https://github.com/PySimpleGUI/PySimpleGUI) - Wrapper for tkinter, Qt, WxPython and Remi that creates a unified, easy to understand & more Python-like interface for beginner and intermediate level custom GUIs. * Toga:Python 原生的, 操作系统原生的 GUI 工具包。[链接](https://github.com/pybee/toga) * urwid:创建终端 GUI 应用的库,支持组件,事件和丰富的色彩等。[链接](https://github.com/urwid/urwid) * wxPython:wxPython 是 wxWidgets C++ 类库和 Python 语言混合的产物。[链接](https://github.com/wxWidgets/Phoenix/) @@ -1252,8 +1275,10 @@ Python版本和环境管理 * [Pygame](http://www.pygame.org/news.html) - Pygame是一套用于编写游戏的Python模块。 -推荐 * [PyOgre](http://www.ogre3d.org/tikiwiki/PyOgre) - Ogre 3D渲染引擎的Python绑定,可用于游戏,模拟,任何3D。 * [PyOpenGL](http://pyopengl.sourceforge.net/) - 用于OpenGL的Python ctypes绑定及其相关的API。 -* [PySDL2](http://pysdl2.readthedocs.io/en/rel_0_9_5/) - SDL2库的基于ctypes的包装器。 +* [PySDL2](https://pysdl2.readthedocs.io) - SDL2库的基于ctypes的包装器。 * [RenPy](https://github.com/renpy/renpy) - Visual Novel引擎。 +* [Harfang3D](http://www.harfang3d.com) - Python framework for 3D, VR and game development. Manage and display complex 3D scenes, with physics, video, sound and music, access VR devices. All written in C++. + ## 地理位置(Geolocation) @@ -1351,7 +1376,7 @@ Python版本和环境管理 * [PyPy](https://bitbucket.org/pypy/pypy) - 实现用RPython编写并编译为C的Python编程语言.PyPy关注速度,效率以及与原始CPython解释器的兼容性。解释器使用黑魔法使Python非常快速,而无需添加额外的类型信息。 --强烈推荐 * [PySec](https://github.com/ebranca/owasp-pysec) - python的强化版本,使安全专业人员和开发人员可以更轻松地编写应用程序,从而更有弹性地处理攻击和操作。 * [Pyston](https://github.com/dropbox/pyston) - 使用LLVM和现代JIT技术构建的Python实现,其目标是实现良好的性能。 --推荐 -* [Stackless Python](https://bitbucket.org/stackless-dev/stackless/wiki/Home) - Python编程语言的增强版本,它允许程序员在没有性能和复杂性的情况下获得基于线程编程的好处与传统线程相关的问题。 --推荐 +* [Stackless Python](https://github.com/stackless-dev/stackless/wiki) - Python编程语言的增强版本,它允许程序员在没有性能和复杂性的情况下获得基于线程编程的好处与传统线程相关的问题。 --推荐 ## 交互式Python解释器(Interactive Interpreter) @@ -1407,12 +1432,16 @@ Python版本和环境管理 * MapReduce的框架和库。* * [PySpark](https://github.com/apache/spark) - Apache Spark Python API。 -* [dpark](http://hao.jobbole.com/dpark/):Spark 的 Python 克隆版,类似 MapReduce 的框架。[官网](https://github.com/douban/dpark) +* [dpark](http://hao.jobbpysimdjsonole.com/dpark/):Spark 的 Python 克隆版,类似 MapReduce 的框架。[官网](https://github.com/douban/dpark) * dumbo:这个 Python 模块可以让人轻松的编写和运行 Hadoop 程序。[官网](https://github.com/klbostee/dumbo) * [luigi](https://github.com/spotify/luigi) - 可帮助您构建批处理作业复杂管道的模块。 * [mrjob](https://github.com/Yelp/mrjob) - 在Hadoop或Amazon Web Services上运行MapReduce作业。 * [streamparse](https://github.com/Parsely/streamparse) - 针对实时数据流运行Python代码。与[Apache Storm](http://storm.apache.org/)集成。 * [dask](https://github.com/dask/dask) - 灵活的分析计算并行计算库。 +* [Ray](https://github.com/ray-project/ray/) - A system for parallel and distributed Python that unifies the machine learning ecosystem. +* [faust](https://github.com/robinhood/faust) - A stream processing library, porting the ideas from [Kafka Streams](https://kafka.apache.org/documentation/streams/) to Python. +* [streamparse](https://github.com/Parsely/streamparse) - Run Python code against real-time streams of data via [Apache Storm](http://storm.apache.org/). + ## 微软Windows @@ -1446,6 +1475,8 @@ Python版本和环境管理 *   thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包[官网](https://github.com/thunlp/THULAC-Python) * [gensim](https://github.com/RaRe-Technologies/gensim) -人 性化的话题建模库。 * [spaCy](https://github.com/explosion/spaCy) - 用于Python和Cython的工业强度自然语言处理的库。 -推荐 +* [PyTorch-NLP](https://github.com/PetrochukM/PyTorch-NLP) - A toolkit enabling rapid deep learning NLP prototyping for research. +* [StanfordNLP](https://github.com/stanfordnlp/stanfordnlp) - The Stanford NLP Group's official Python library, supporting 50+ languages ## 网络虚拟化(Network Virtualization) @@ -1650,7 +1681,7 @@ Python版本和环境管理 * [django-haystack](https://github.com/django-haystack/django-haystack) - Django模块化搜索。 * [elasticsearch-dsl-py](https://github.com/elastic/elasticsearch-dsl-py) - Elasticsearch的官方高级Python客户端。 * [elasticsearch-py](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html) - [Elasticsearch]的官方低级Python客户端(https: //www.elastic.co/products/elasticsearch)。 -* [esengine](https://github.com/seek-ai/esengine) - 用于Python的ElasticSearch ODM(对象文档映射器)。 +* [elasticsearch-dsl-py](https://github.com/elastic/elasticsearch-dsl-py) - 官方高级 Elasticsearch Python client . * [pysolr](https://github.com/django-haystack/pysolr) - Apache Solr的轻量级Python包装(包括SolrCloud认知)。 * [solrpy](https://github.com/edsu/solrpy) - [solr]的一个Python客户端(http://lucene.apache.org/solr/)。 * [Whoosh](http://whoosh.readthedocs.io/en/latest/) - 快速,纯粹的Python搜索引擎库。 --推荐 @@ -1661,11 +1692,15 @@ Python版本和环境管理 * [marshmallow](https://github.com/marshmallow-code/marshmallow) - marshmallow是一个ORM / ODM /框架无关的库,用于将复杂数据类型(如对象)转换为本机Python数据类型和从本地Python数据类型转换。 +* [pysimdjson](https://github.com/TkTech/pysimdjson) - A Python bindings for [simdjson](https://github.com/lemire/simdjson). + +* [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) - A Python wrapper around [RapidJSON](https://github.com/Tencent/rapidjson). + + ## 无服务器框架(Serverless Frameworks *用于开发无服务器Python代码的框架。* -* [apex](https://github.com/apex/apex) - 轻松构建,部署和管理[AWS Lambda](https://aws.amazon.com/lambda/)功能。 --推荐 * [python-lambda](https://github.com/nficano/python-lambda) - 用于在AWS Lambda中开发和部署Python代码的工具包。 * [Zappa](https://github.com/Miserlou/Zappa) - AWS Lambda和API网关上部署WSGI应用程序的工具。--推荐 @@ -1767,10 +1802,14 @@ Archive * difflib:(Python 标准库)帮助我们进行差异化比较。[链接](https://docs.python.org/2/library/difflib.html) * ftfy:让Unicode文本更完整更连贯。[链接](https://github.com/LuminosoInsight/python-ftfy) + + * hashids:在 Python 中实现 hashids 。[链接](https://github.com/davidaurelio/hashids-python) * fuzzywuzzy:模糊字符串匹配。[链接](https://github.com/seatgeek/fuzzywuzzy) --推荐 * Levenshtein:快速计算编辑距离以及字符串的相似度。[链接](https://github.com/ztane/python-Levenshtein/) + + * [pangu.py](https://github.com/vinta/pangu.py) - Spacing texts for CJK and alphanumerics. * pyfiglet:pyfiglet -figlet 的 Python实现。[链接](https://github.com/pwaller/pyfiglet) @@ -1936,7 +1975,7 @@ Archive 全栈 Web 框架。 - * Django:Python 界最流行的 web 框架。[链接](https://github.com/django/django) wesome-django系列 [链接](https://github.com/rosarior/awesome-django) --强烈推荐 + * Django:Python 界最流行的 web 框架。[链接](https://github.com/django/django) wesome-django系列 [awesome-django](https://github.com/wsvincent/awesome-django) --强烈推荐 * Flask:Python 微型框架。[链接](https://github.com/pallets/flask) awesome-flask系列 [链接](https://github.com/humiaozuzu/awesome-flask) --强烈推荐 python web框架第一名 @@ -1978,6 +2017,78 @@ Archive * [sentry](https://github.com/getsentry/sentry) Sentry is cross-platform application monitoring, with a focus on error reporting. https://sentry.io 推荐 * [Graphite](https://github.com/graphite-project/graphite-web/blob/master/docs/overview.rst) 存储时间序列数据,并通过Django Web应用程序在图形中显示它们。 +# Services + +Online tools and APIs to simplify development. + +## Continuous Integration + +*Also see [awesome-CIandCD](https://github.com/ciandcd/awesome-ciandcd#online-build-system).* + +* [CircleCI](https://circleci.com/) - A CI service that can run very fast parallel testing. +* [Travis CI](https://travis-ci.org) - A popular CI service for your open source and [private](https://travis-ci.com) projects. (GitHub only) +* [Vexor CI](https://vexor.io) - A continuous integration tool for private apps with pay-per-minute billing model. +* [Wercker](http://www.wercker.com/) - A Docker-based platform for building and deploying applications and microservices. + +## Code Quality + +* [Codacy](https://www.codacy.com/) - Automated Code Review to ship better code, faster. +* [Codecov](https://codecov.io/) - Code coverage dashboard. +* [CodeFactor](https://www.codefactor.io/) - Automated Code Review for Git. +* [Landscape](https://landscape.io/) - Hosted continuous Python code metrics. +* [PEP 8 Speaks](https://pep8speaks.com/) - GitHub integration to review code style. + +# Resources + +Where to discover new Python libraries. + +## Podcasts + +* [From Python Import Podcast](http://frompythonimportpodcast.com/) +* [Podcast.init](https://podcastinit.com/) +* [Python Bytes](https://pythonbytes.fm) +* [Python Testing](http://pythontesting.net) +* [Radio Free Python](http://radiofreepython.com/) +* [Talk Python To Me](https://talkpython.fm/) +* [Test and Code](https://testandcode.com/) + +## Twitter + +* [@codetengu](https://twitter.com/codetengu) +* [@getpy](https://twitter.com/getpy) +* [@importpython](https://twitter.com/importpython) +* [@planetpython](https://twitter.com/planetpython) +* [@pycoders](https://twitter.com/pycoders) +* [@pypi](https://twitter.com/pypi) +* [@pythontrending](https://twitter.com/pythontrending) +* [@PythonWeekly](https://twitter.com/PythonWeekly) +* [@TalkPython](https://twitter.com/talkpython) +* [@realpython](https://twitter.com/realpython) + +## Websites + +* [/r/CoolGithubProjects](https://www.reddit.com/r/coolgithubprojects/) +* [/r/Python](https://www.reddit.com/r/python) +* [Awesome Python @LibHunt](https://python.libhunt.com/) +* [Django Packages](https://djangopackages.org/) +* [Full Stack Python](https://www.fullstackpython.com/) +* [Python Cheatsheet](https://www.pythoncheatsheet.org/) +* [Python Hackers](http://www.oss.io/open-source/) +* [Python ZEEF](https://python.zeef.com/alan.richmond) +* [Python 开发社区](https://www.ctolib.com/python/) +* [Real Python](https://realpython.com) +* [Trending Python repositories on GitHub today](https://github.com/trending?l=python) +* [Сообщество Python Программистов](https://python-scripts.com/) + +## Weekly + +* [CodeTengu Weekly 碼天狗週刊](https://weekly.codetengu.com/) +* [Import Python Newsletter](http://importpython.com/newsletter/) +* [Pycoder's Weekly](http://pycoders.com/) +* [Python Weekly](http://www.pythonweekly.com/) +* [Python Tricks](https://realpython.com/python-tricks/) + + ### 持续更新 [接口自动化性能测试线上培训大纲](https://china-testing.github.io/testing_training.html) @@ -1986,4 +2097,27 @@ Archive wechat: pythontesting +## Websites + +* [/r/CoolGithubProjects](https://www.reddit.com/r/coolgithubprojects/) +* [/r/Python](https://www.reddit.com/r/python) +* [Awesome Python @LibHunt](https://python.libhunt.com/) +* [Django Packages](https://djangopackages.org/) +* [Full Stack Python](https://www.fullstackpython.com/) +* [Python Cheatsheet](https://www.pythoncheatsheet.org/) +* [Python Hackers](http://www.oss.io/open-source/) +* [Python ZEEF](https://python.zeef.com/alan.richmond) +* [Python 开发社区](https://www.ctolib.com/python/) +* [Real Python](https://realpython.com) +* [Trending Python repositories on GitHub today](https://github.com/trending?l=python) +* [Сообщество Python Программистов](https://python-scripts.com/) + +## Weekly + +* [CodeTengu Weekly 碼天狗週刊](https://weekly.codetengu.com/) +* [Import Python Newsletter](http://importpython.com/newsletter/) +* [Pycoder's Weekly](http://pycoders.com/) +* [Python Weekly](http://www.pythonweekly.com/) +* [Python Tricks](https://realpython.com/python-tricks/) + diff --git a/flask/api_demo/__pycache__/Model.cpython-37.pyc b/flask/api_demo/__pycache__/Model.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ce256b0c8a8f2d4d2fee7b82125e6fb213797f52 GIT binary patch literal 2017 zcma)7O>g5i5EUg^l4Z%UopihXP7AbvfhPU|Efz_=n_|&T&>}f;3kZrx$4V&4q2ygS z$ZZ!zFS!*xC&&IJUVF+vDE8DDO3p`-q7}eLYB;239v?^Fg`sc2^YWL!eqMD9<4=59 zJ~j-tpq0M?FoO|cWP}oeV^f%!MXk)HcGjY;%%P69Tf)se>glm9+L=#%VsP(`K|9^dkv8p zL!w$cA}&vcwsQ89DbHf%Oj0gbsl1uwktkxOyjQVESzK{&@9f61oMy2Q#cO!=_kVh^ zEpXu?!3~!W5KlbXpii{&CZ;fw2c5b+Key?ic2d?@(PRNa!xS6oJnPvW_#WC%WIVFHvK6*A@J zX3D5L-rgT?KYfNvi=1)6E3Uk8?XyrWTjX(;CNOP__-p~adl)Atl1~x~w!;T|6WSPB z*#kHy=SF0ln}EO|WI*;H8n=mEb(#nkQObsvvP&)|at+qW_W=Gd5*E+rgeRHYd&t2mpfFp)g2(jt#gsmk9e zBu|g>ANWF(K?BK!o-e2AOs+y6pn>La#Rd*S8UET1udy=2dQ_0!h(EDcwDDVg4zNJTxG)EiYJcOpNg$J^bXt@{e zjTp9I<~H18y9pCR#<2w+s$%{EsxTTGVHR{?vKF^P_57-#zasT#^I0X7VfadWeS+OyJj= zqYL12tPzRUJt(;?U0NjSh<2dLF8>}9k5X#FktH1}?Q7@guA7Ssd$qkh6>t vf+OlpwRFMKmr-j*pM(zKp@^0DZC#$8V7}!5ARvz+?7(t}V-0$P_Mr7QWL3n; literal 0 HcmV?d00001 diff --git a/flask/api_demo/__pycache__/app.cpython-37.pyc b/flask/api_demo/__pycache__/app.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c81550b96c7f1d429acee6e3d3d6921656b84276 GIT binary patch literal 520 zcmYk2xlRKy5Qgn__R2vZZ;>K#jf4;+4HX4+25Gg#lSA0+m3IS5S|pwWN?vJOD&7E5 zF*XTc%j0kU@f`A`*J~48H_xB9G$7>NIs4T@IKxvtppisUMKl$ZIu2BznP8roYUxmf zo?9x?v4}l~D$%J(DFG@YXg>v_0}MJ(RCJ;H(t}XOuK`9K$1?flRHlw)`F0HqAV;WV#dVeIA#DzmmTK&?MDT0>FqrH19@Y8!E%vrYLv zWt;Hb%gfb|TEUEt_n;Ab2g zq244}R^%G8tch@{?5?!2d*02Zbp3pXH)1;|dh>P6mqr863u)nz&x{0KZtA5eMwmaU np;{FS?&syMpag9Y%5k}Ak`ry@TEVI7Tn*54>29+&O_<|vj%kdb literal 0 HcmV?d00001 diff --git a/flask/api_demo/__pycache__/config.cpython-37.pyc b/flask/api_demo/__pycache__/config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f57eecd0342a4f0cfbc409b1d1de7af44748cca2 GIT binary patch literal 359 zcmYjN%}T>S5Z-N)HVVay;LV$df_3kuNYk{X!Tw+q4@P0xb~jCQla1Mk)Cce}#2$U6 zy?XKu#FN{q&>7}qX1W4iVFKG1ga@^$+P0r=Py|7Pi=qeGr*pnyUSLcqWse5-8H zVCEXGVQA4xSfxf-qh@GR=!1s!sW-r65ImpcLYB*d$p_v-h-9>2Pc4!s9WEAx$C^aC zYV4_skjl(S8LJwZ%in}1MMhGlY>cCXGmOL9oJgkI>cGDoIU{%2A7A6XJDjTHoklQo z+zULO_Pl}TI)OKx`08kf?>T|fb^JcQntAV_*nD6M-)$6&l>Ny>3qcvmS7j`+rWV;O rnM|@Jia3$?8`YSyROqQJN|tB&O4;pH&_~YBtNNg{HQ2@>G`0T#EhT5t literal 0 HcmV?d00001 diff --git a/flask/api_demo/__pycache__/run.cpython-37.pyc b/flask/api_demo/__pycache__/run.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..62290664f4a2499d2b568a652f85c17265b56902 GIT binary patch literal 579 zcmYk3&u-K(5XSu{$)?%eBJmbElyF5t2!Vt+Kre6#m8>M5Y`u-0$Z-Tk%c+Q4-=Q3N zB_H9$8&o}Y>(;OJ8&r8V8}u8c}onSv02`c1#OqkE0JEbfb(Ac7@xI zVX6|^Wp`R0`7~l^ZpQCciO+u(;g|O$+}_!`1Sbs`1pIj_q4IJ6e0M2|M~WJ z!xln+nZ?N$z~pmi@=xd}qButd9$;+dPVNjG7~R}0yn$zBUfwADfp6yxmuoUKDZY+hofI3>ODa_=o=W}%u5ZaoF5`^HH_G8Khlk#Xi;}W_6vgm89cMDG zA6*G1V>M=GXv|q!jyH<~6JSnH< zdBTVI>gGGpMcb@b_871*QG#$uQlqCkqT`fxhtX z1IZ%b*Fas`tZzry!)-UhVhv>P*yqB+>~9)H1s%oId4+&`Na2~I@Wh>C>MC#2px$fu z7$4yoFz?OAv7>@XI7CN|Y91ll_|;XA>C}gOZU5r@1R1Y_+0ufo!K|}jYf!Tlc)OU< z0C*c7{`eu%^8ax55r>!o$z;kn5m^bestIC(Z#V?xIH9MFtRXFtvP?6(XBfhn#kl79 z8PYG}o*GEZ=PlYUjElqsI2;4eOIO@Ff~35Rj@=`7;?6uMMYl!(1{62+gL4}VQ z9AKcxB<8kmlS-8%#(^n{JrpMG4?o%lx5tE!ApIasr70sMrVPr1VzduT3V=aGDIq$b zufw#UhDuVmswtEa%3vjRn8}0{Q+1&Iyc~^~&|b!eWzVbm77DhXNkglMX2QIFpGoc4 zq_>Q!yYuFXt5Z>?Ov>csP;z?azCpsW33qUaBizP^citzS4O;(hUZy0M_xk^1?yz;H zcJ>_YPX!xhFLcw?-!zA?LCQs^5wqDMVsJtjC$@WCVPaH6(=w?h>(J`eI>VBTXD2ez z0974sS9$&z%-iB_m|!6i%f^mLMqz%0I)WO=xPeUS&bw?)An&DEFUe2GX?;LUbFHpD-0X}6B?wa52FM9vPsoXV7GTgM@cfQ6cp(s5e|rS zV8RSFY|vRu`n8k7a92mCu+{+Crw5ClSp8s2r{x7q=AW2wQZU^F6t^se#8qReF@!KY zt3l~XQ}j-YnRY>02ZBv=k}`4A=sR>zhbM)x2Go=r`w-m)nl9>6V*W#CaI%P5{)Km8 otIF9ulOWR6ueKB7w$nDv^Sua1ej7?zh?j9E4A;VIAr75?0H*nWyQ%Y9&H&9)U8=(0zYwk*+~~Twphj z-4bE;FAf3B_843snS=R))g=Geqt08@(S=i$aCac8E+zG8 zZDtk9w&uvQk`}nNk=RJ>}_}A)fQpev>t> z#`oG>dMG5OJ^shVFP6MU1WNVeS=bjjhA{_;@4`d?hJ%sr3%(c+(nXDm@`o?8SiKI( zL6zqs%+sDMTctwkMlr!EJU?*J(qLq~;eet5FH$OXg_LDi*#f)Fd{&=YS82b%M%~zyWelk>F*OWuAW$^Y7*Yh8f=T2w%;Sa#@}EuFJ~D@h|=a`lCOu literal 0 HcmV?d00001 diff --git a/flask/api_demo/resources/__pycache__/Category.cpython-37.pyc b/flask/api_demo/resources/__pycache__/Category.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da272a1697ee40f2a6c11157d870cb927fa35c88 GIT binary patch literal 2186 zcmb_d&yO256t+D-Gnu3_w=EkW)6+OU(2vJVMN~77>*_|+xNo^01RdQ;@ z0cj=9h(q>*#D4-3e}S)@_CG+Jc+azwmhK9Hv?KYOH@4ri{l4#cKI-)%0?(J<{kgZ_ zA>f5kto?zHh?&nHC3?T$+As zJ(wJdGW!B1yJa?CPB2LOFfi^xQ||)^l2A?(#wllyN#byayYPmMaUb3u4|oV~pLbw0 zk-6F~&~9NuAqYMg)q!>&ntBsJlNsHx6SAh-*|;luLTBEZa=L<*eq!92GKlDoO`z(@ zL?|_6##cJiwK6WxbawhH1R46$gO~B(>~KCOD++UM(i}GzDpmHJ;82$f*+mCtTqTOB ziJr{*g~;b&=&w&khgB&?*_=!9&1h0_F%u46WY|=fl1r+;KXfueuNK94<`MXt|2Ar7A8KY z+{3hJwsA0Fdu+|t&dQM=tQ_v!5qIXz{1xNDO~S)tx(Oh`?#h*W;NRK$L%Q1;YgdP} z&L C!k4dcTWgdY!hSOthe@fwDNctNQo^ey)g>Mn^qt(6O_PBb|8*+$JHR8FKRtN zb_NSseVuc`^B+I~`Og5xooA&OQuzWL@90LGjzLyPk@4j~e48t+B-9VEB(b0@W2e7i zM_;0VOb9tkXR4Z;D`)&Iw;UH$#;qD;52tpfd7*_&_m{BMTq-TG55lefaX4^~Oa~Jc;c#zL2t#%7pE*#s})_LR;xHu!D~7qEZ?y^$Gw1=3N@I zK43_9(WZ>XPD~>fv!m;661JK^?~6t8Jw&@)QK)~20z?ztBr7)!b!QfB&WoT6B8Wi* zJu8Afia_qdrsNHP|3E*>Ie5H-lb?{!E1?GSN;m9VX`ENU@8EN$0Qn-W_!7b`1gw6` zw|p5b%y|<8$(FAoyoT^B!SZ$N#T!Asfq*xXd&qX1i z5HE=kiDcY`rm)DKCB#0TAoVHVa=7S(YU*S)OAne2fN!4=Q?viF8% zgJ%pvh~6@Yr2odt5{RF(w0DEqSt@L_)NNBP);3b|RVTGcxsAV*y6x0lroI*M(ne=( zUCYMU_^dGUyj5#EJeZ!(FJxVOk3oK2H0wEKJuZRD6Wsa%3du4KEEB*%yk(gO9{Bjh zO0k;Ijt}{cH_ti7(4r(B?lau_D-?z;`A%H3EjQlI-|%a`47MEj1{41#z*`7R=+A7V zyZKydjXj3i6sFVGhr$#$e_)a{R3UzBfGuM;UQtzcJl}VzbM2Z!_pV;4A-N0dYgsL9 zeDwL9sZa3WpJ&sHwwBYP0VQ8g=Pk(TYHcps=3%ia9~!C4=6t%S3jNa*4LQiVovH)6 zdU|O3bcH3HOEbodn(AV_&l7%m_kW zjM#Yu)eEr|TW{m3M-Xm2h!C*Yo%_pR8Eyph?lb6L@m+)f`x{>aa%TVu`t9??dmofT z^c-D@ZD4xK{%)`dt~qB;Pp%niVmBn)a$Hj$7_=ZqJA>!JFlpsWj>i#X5RL>aI&c7vYEmK8TZ ztQfm3zZE0Rcs$=X?=(sJ2;}zp{q6)K^y)r43BehInjsjDIF_iy8OG=W@qm*x;zZyl zk_9}xMrrg0RVc+az7j^Yx)6m6>?8nZ3~Khk2$W%tpb_(6jWWUs58(}Y1cN#@x)f5X z0`PcouWLU8H8B|1w!lzICbnA&WAd3;CBErkc%!uB`!5bjXoQ^V2s*s^IHz+}3Yu43 zi$_{0E@-`M=BgUy^!l?#(KyzO1BLLax5+^C zUy!xq^$%Q+FU7h8sc*o#3tt=7$}|ahyM6sF5(rPy$i|FSc_|pPea1?~Tj~4(V-IaE zHyQ0%)4kurJuhy9CSY9BIAk%7iH}TDViV5>0}`5PE44e==YC-P8e`+5&Gut=g$Fwz EpE6K?{Qv*} literal 0 HcmV?d00001 diff --git a/practices/tk/optionDB.txt b/practices/tk/optionDB.txt index 811fcc2..db257e1 100644 --- a/practices/tk/optionDB.txt +++ b/practices/tk/optionDB.txt @@ -1,5 +1,56 @@ -*Button*borderwidth:3 -*Button*relief: raised -*Button*width: 3 -*Button*height: 1 -*Button*pady:3 +ar_internal_metadata +attachments +auth_sources +boards +changes +changeset_parents +changesets +changesets_issues +comments +custom_field_enumerations +custom_fields +custom_fields_projects +custom_fields_roles +custom_fields_trackers +custom_values +documents +email_addresses +enabled_modules +enumerations +groups_users +import_items +imports +issue_categories +issue_relations +issue_statuses +issues +journal_details +journals +member_roles +members +messages +news +open_id_authentication_associations +open_id_authentication_nonces +projects +projects_trackers +queries +queries_roles +repositories +roles +roles_managed_roles +schema_migrations +settings +time_entries +tokens +trackers +user_preferences +users +versions +watchers +wiki_content_versions +wiki_contents +wiki_pages +wiki_redirects +wikis +workflows From 2fe534b480552d5998288adfe6eae9034ead4d87 Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 23 Aug 2019 08:03:04 +0800 Subject: [PATCH 057/122] Add word_cloud in Readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c34d323..0fd7f95 100755 --- a/README.md +++ b/README.md @@ -1358,6 +1358,7 @@ Python版本和环境管理 * [pagan](https://github.com/daboth/pagan) - 基于输入字符串和散列的复古identicon(阿凡达)生成。 * [opencv-python](https://github.com/skvark/opencv-python) 预编译的opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless。 --推荐 * [imutils](https://github.com/jrosebr1/imutils) 一系列便利函数,可以使用OpenCV和Python轻松进行基本图像处理操作,如平移,旋转,调整大小,骨架化和显示Matplotlib图像。 --推荐 +* [word_cloud](https://github.com/amueller/word_cloud) 词云 ## 实现(Implementations) From 45ac68a31e166a5f357e03fa4427e8e71ba4105d Mon Sep 17 00:00:00 2001 From: china-testing Date: Sat, 24 Aug 2019 07:06:16 +0800 Subject: [PATCH 058/122] Add pingan hr --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0fd7f95..a99ac63 100755 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ book_scraper/requests_allitbooks.py 根据搜索词下载allitbooks的书籍,[ wingide6 破解:other/wingide6_python3_crack.py + + * [平安产险技术岗内部推荐-大数据测试开发工程师等-欢迎中年人和2020应届生](https://www.jianshu.com/p/e6255434be56) * [国学 中医 历史等社科类书籍下载](https://github.com/china-testing/python-api-tesing/blob/master/society_books.md) * [电影 视频 下载](https://github.com/china-testing/python-api-tesing/blob/master/videos.md) * [IT类书籍 下载](https://github.com/china-testing/python-api-tesing/blob/master/books.md) From c7f86b12e1609bf5c8fdaae8ffc1c271eb203e13 Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 11 Oct 2019 17:45:19 +0800 Subject: [PATCH 059/122] modify xing bugs of wei --- bazi/__pycache__/datas.cpython-37.pyc | Bin 0 -> 6954 bytes bazi/__pycache__/ganzhi.cpython-37.pyc | Bin 0 -> 13693 bytes bazi/__pycache__/sizi.cpython-37.pyc | Bin 0 -> 165987 bytes bazi/ganzhi.py | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 bazi/__pycache__/datas.cpython-37.pyc create mode 100644 bazi/__pycache__/ganzhi.cpython-37.pyc create mode 100644 bazi/__pycache__/sizi.cpython-37.pyc diff --git a/bazi/__pycache__/datas.cpython-37.pyc b/bazi/__pycache__/datas.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96ba1b618da2a41dcec15a1bf42f013b06114244 GIT binary patch literal 6954 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 literal 0 HcmV?d00001 diff --git a/bazi/__pycache__/ganzhi.cpython-37.pyc b/bazi/__pycache__/ganzhi.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2f7543a02fb343bf1b859b3cf8ac474030dc788 GIT binary patch literal 13693 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 literal 0 HcmV?d00001 diff --git a/bazi/__pycache__/sizi.cpython-37.pyc b/bazi/__pycache__/sizi.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..57791e65f2346ae7bbdb6f31388704968b5e8e39 GIT binary patch literal 165987 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 TBJcc&-~W&n)oT8met-J!#zr^? literal 0 HcmV?d00001 diff --git a/bazi/ganzhi.py b/bazi/ganzhi.py index 2536b92..6366702 100644 --- a/bazi/ganzhi.py +++ b/bazi/ganzhi.py @@ -111,7 +111,7 @@ "辰":{"冲":"戌", "刑":"辰", "被刑":"辰", "合":("子","申"), "会":("寅","卯"), '害':'卯', '破':'丑', "六合":"酉","暗合":"丑",}, "巳":{"冲":"亥", "刑":"申", "被刑":"寅", "合":("酉","丑"), "会":("午","未"), '害':'寅', '破':'申', "六合":"申","暗合":"酉",}, "午":{"冲":"子", "刑":"午", "被刑":"午", "合":("寅","戌"), "会":("巳","未"), '害':'丑', '破':'卯', "六合":"未","暗合":"亥",}, - "未":{"冲":"丑", "刑":"戌", "被刑":"未", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午","暗合":"丑",}, + "未":{"冲":"丑", "刑":"丑", "被刑":"戌", "合":("卯","亥"), "会":("巳","午"), '害':'子', '破':'戌', "六合":"午","暗合":"丑",}, "申":{"冲":"寅", "刑":"寅", "被刑":"巳", "合":("子","辰"), "会":("酉","戌"), '害':'亥', '破':'巳', "六合":"巳","暗合":"卯",}, "酉":{"冲":"卯", "刑":"酉", "被刑":"酉", "合":("巳","丑"), "会":("申","戌"), '害':'戌', '破':'子', "六合":"辰","暗合":"巳",}, "戌":{"冲":"辰", "刑":"未", "被刑":"丑", "合":("午","寅"), "会":("申","酉"), '害':'酉', '破':'未', "六合":"卯","暗合":"丑",}, From 29cef6aeb1123312f031d25f873466cd88918bd4 Mon Sep 17 00:00:00 2001 From: china-testing Date: Sat, 26 Oct 2019 23:34:24 +0800 Subject: [PATCH 060/122] Add PyExecJS --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a99ac63..06c89ac 100755 --- a/README.md +++ b/README.md @@ -285,6 +285,7 @@ autopy、WATSUP、winGuiAuto因为较长时间未更新未收录 * [python库介绍-jpype:python到java桥](https://china-testing.github.io/python3_lib_jpype1.html) * [python库介绍-pyjnius:访问java类](https://china-testing.github.io/python3_lib_pyjniu.html) * [python3外部库boost介绍 用c++为python编写扩展](https://china-testing.github.io/python3_lib_boost.html) + * [PyExecJS](https://github.com/doloopwhile/PyExecJS) 执行JavaScript代码。 * [C++11和Python桥](https://github.com/pybind/pybind11) From 6e7c7f8e393b85df1c1dbb814efd4f7cfeaa87d5 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 20 Nov 2019 06:10:44 +0800 Subject: [PATCH 061/122] Add jmeter books! --- books.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/books.md b/books.md index c8437af..858153e 100755 --- a/books.md +++ b/books.md @@ -4,6 +4,8 @@ 今日头条极速版看新闻可以赚钱,邀请码DBG8ADUK +下面书籍如果出现无法下载,可以加qq群:630011153 144081101 6089740下载 + * [书籍](#书籍) * [c_c ](#c_c) @@ -51,6 +53,8 @@ * [人工智能机器学习](#人工智能机器学习) * [Scikit-learn](#scikit-learn) * [虚拟现实](#虚拟现实) + * [大数据](#大数据) + * [架构](#架构) # 书籍 @@ -888,6 +892,10 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 ### 软件测试 + [Pro Apache JMeter Web Application Performance Testing - 2017.pdf](https://www.jianshu.com/p/56125b1c91c0) [下载](https://itbooks.pipipan.com/fs/18113597-384173739) + + [Performance Testing with JMeter 3 - Third Edition - 2017.pdf](https://www.jianshu.com/p/4c4ce0b8ba45) [下载](https://itbooks.pipipan.com/fs/18113597-384173741) + [优质代码:软件测试的原则、实践与模式 \- 2015.pdf](https://itbooks.pipipan.com/fs/18113597-316074102) @@ -1282,7 +1290,16 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 [Unity 2018 Augmented Reality Projects - 2018 - Jesse Glover.pdf](https://itbooks.pipipan.com/fs/18113597-316294855) - +## 大数据 + +[书籍:企业大数据处理:Spark、Druid、Flume与Kafka应用实践 (大数据技术丛书).pdf](https://www.jianshu.com/p/14db68f454df) [下载](https://itbooks.pipipan.com/fs/18113597-394413911) + +## 架构 + +[书籍:企业IT架构转型之道:阿里巴巴中台战略思想与架构实战.pdf](https://www.jianshu.com/p/40ee76d984d0) [下载](https://itbooks.pipipan.com/fs/18113597-394414631) + +[书籍:流程的永恒之道](https://www.jianshu.com/p/435cf0fd9ce9) [下载](https://itbooks.pipipan.com/fs/18113597-384173739) + * 技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728 From 2ca57eb360998a829033d5cea191088d0824ba04 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 25 Nov 2019 05:14:27 +0800 Subject: [PATCH 062/122] Add addesss.md --- addesss.md | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 addesss.md diff --git a/addesss.md b/addesss.md new file mode 100644 index 0000000..438c9ea --- /dev/null +++ b/addesss.md @@ -0,0 +1,74 @@ + * [国学 中医 历史等社科类书籍下载](https://github.com/china-testing/python-api-tesing/blob/master/society_books.md) + * [电影 视频 下载](https://github.com/china-testing/python-api-tesing/blob/master/videos.md) + * [IT类书籍 下载](https://github.com/china-testing/python-api-tesing/blob/master/books.md) + +技术支持讨论qq群:630011153 144081101 6089740下载 + + + | 类别 | 名称 | 名称 | 名称 | 名称 | 名称 | 名称 +| --- | --- | --- | --- | --- | --- | --- | +**常用** | [oscobo](https://www.oscobo.com/) | [谷歌](https://www.google.com.hk/?gws_rd=ssl) |[谷歌翻译](http://translate.google.cn/?hl=zh-CN) |[360百科](https://baike.so.com/doc/1790119-1892991.html) | [维基中文](https://zh.wikipedia.org/wiki/Python) +|-| [必应](https://cn.bing.com/search?q=site%3Achina-testing.github.io&qs=n&form=QBLH&sp=-1&pq=site%3Achina-testing.github.io&sc=0-26&sk=&cvid=CF01D3E7586D46EDA7A260FAD61344CD) | [代码搜索](https://searchcode.com/)| [有道词典](http://dict.youdao.com/) | [百度百科](https://baike.baidu.com/item/Python/407313) | [overflow](http://stackoverflow.com/) | +- | [百度](https://www.baidu.com/) |[so](https://www.so.com/s?ie=utf-8&fr=none&src=360sou_newhome&q=site%3Achina-testing.github.io)|[bing翻译](https://cn.bing.com/Translator) |[知乎](https://www.zhihu.com/) | [维基英文](https://en.wikipedia.org/wiki/Python_(programming_language)) | [空气污染](http://aqicn.org/map/hk/#@g/24.0686/113.7764/7z) | +|**技术**| [新浪科技](https://tech.sina.com.cn/) | [guru99](https://www.guru99.com/) |[vogella](https://www.vogella.com/tutorials/) | +|**Python** | [pypi](https://pypi.python.org/pypi) | [pymotw](https://pymotw.com) | [effbot](http://effbot.org/librarybook/) |[python库](https://github.com/china-testing/python-api-tesing) | [awesome-python](https://github.com/vinta/awesome-python) | [jobbole](http://python.jobbole.com/) | +| Python | [memect](http://memect.com/) | [wiki](https://wiki.python.org/moin/Documentation) | [pythonjobs](http://pythonjobs.github.io/) | [标准库](https://docs.python.org/3/library/) | [python中文](https://docs.python.org/zh-cn/3/) | [自动化库汇总](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md#rest-api-testing) | +| |[realpython](https://realpython.com/) |[pbpython_pd](https://pbpython.com/) |[quizzes](https://realpython.com/quizzes/) +| 本人博客 | [python中文库](https://bitbucket.org/xurongzhong/python-chinese-library/wiki/browse/) | [工作日志](https://bitbucket.org/xurongzhong/work_log/wiki/browse/) | [生活](https://bitbucket.org/xurongzhong/life/wiki/browse/) | [健康](https://bitbucket.org/xurongzhong/health/wiki/browse/) | [python小脚本](https://bitbucket.org/xurongzhong/small_python_daily_tools/wiki/browse/) | [软件测试博客](https://bitbucket.org/xurongzhong/testing/wiki/browse/) | +| 每日新闻 | [美国之音](http://www.voachinese.com/) | [联合早报](http://www.zaobao.com/) | [天气预报](http://www.weather.com.cn/weather/101280601.shtml) | [ft中文](http://www.ftchinese.com/) | [华尔街](http://cn.wsj.com/gb/index.asp) | [路透社](http://cn.reuters.com) +| [mc.ai](https://mc.ai/) | | [cnet](http://www.sznews.com/news/node_18235.htm)  | +| 排名 | [编程流行度](http://pypl.github.io/PYPL.html) | [TIOBE](http://www.tiobe.com/tiobe-index/) | [数据库排名](http://db-engines.com/en/ranking) | [IEEE](http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages) | [codeevalblog](http://blog.codeeval.com/codeevalblog) | [redmonk](http://redmonk.com/sogrady/category/programming-languages/) | +| 测试 | [谷歌测试博客](https://testing.googleblog.com/) | [webpagetest](https://www.webpagetest.org/) |[testandcode](https://testandcode.com) | | | +| 武冈 | [红网论坛](http://bbs.rednet.cn/forum.php?mod=forumdisplay&fid=74) | [百度武冈](http://news.baidu.com/ns?word=%CE%E4%B8%D4&tn=news&from=news&cl=2&rn=20&ct=0) | [武冈政府](http://www.wugang.gov.cn/) | [武冈天气](http://www.weather.com.cn/weather/101250908.shtml) | | +| 购物 | [亚马逊](https://www.amazon.cn/) | [天猫](https://www.tmall.com/) | [淘宝](https://china-testing.github.io/www.taobao.com) | [互动出版](http://www.china-pub.com/) | | +| 博客 | [郑永年](http://www.caogen.com/blog/index.aspx?ID=66) | +| 书籍 | [allitebooks](http://www.allitebooks.com/) | [archive](https://archive.org/details/texts) | [DigiLibraries](http://digilibraries.com/) | [smtebooks](https://smtebooks.com/) | +| 书籍 | [rufengso](http://www.rufengso.net/) | [finelybook](http://finelybook.com/) | [pansoso](http://www.pansoso.com/) | [wowebook](http://www.wowebook.org/) | [5kindle](https://5kindle.com/books/29452/) | [爱知客](http://www.izhike.cn/) | +| 工具 | [Git-Cheat-Sheet](https://github.com/flyhigher139/Git-Cheat-Sheet) | [web酷狗](http://web.kugou.com/) | [网站排行](http://top.chinaz.com/) | | +| 下载 | [youtube下载](https://china-testing.github.io/www.findyoutube.com) | [cnet下载](https://archive.org/details/texts) | [3322](http://www.3322.cc/sort/index.html) | [pc6](http://www.pc6.com/) | [西西软件](http://www.cr173.com/) +| Linux | [rpmfind](http://fr2.rpmfind.net/) | [pkgs](https://pkgs.org/) | [RPM Search](http://rpm.pbone.net/) | | + | [用药参考](http://drugs.medlive.cn/index.jsp) | [医案查询](http://www.gjmlzy.com:83/KBFmsSearch/Main/Index6) | [中药大全](http://zhongyao.m.supfree.net/) | [中医百科](https://zhongyibaike.com/wiki/%E5%9B%9B%E5%90%9B%E5%AD%90%E6%B1%A4) | +| 中草药 | [植物图库](http://www.cses.tc.edu.tw/~tiwngien/picture%20datas/plant/oftensees.htm) | [福星花园](https://china-testing.github.io/bruce0342.blogspot.hk) | [认识植物](http://kplant.biodiv.tw/) | [中国植物志](http://frps.eflora.cn/) | [医学百科](http://www.a-hospital.com/w/%E7%99%BD%E8%83%8C%E5%8F%B6) | [中医书籍](http://www.zysj.com.cn/lilunshuji/index.html) +| **道家** |[元亨排盘](https://www.china95.net/paipan/bazi/) | [子易排盘](http://forecasting.hk/8words/) | [八字五行算命](http://www.chineseastrologyonline.com/CAGB.htm) | [星相命理](http://tiger168.com/luckytop/lucky03.html) +万年历 |[黄金易园](http://www.hjqing.com/find/2000/index.asp) | [360](http://hao.360.cn/rili/) | + +**软件** +| 类别 | 名称 | 名称 | 名称 | 名称 | 名称 | 名称 +| --- | --- | --- | --- | --- | --- | --- | +**软件** | [pdf转word](https://china-testing.github.io/www.free-pdf-to-word-converter.com/downloads/pdf-to-word-converter.exe) | [在线作图](https://www.draw.io/) | [软件替代](https://china-testing.github.io/alternativeto.net/software/beyond-compare/) | [7zip](https://china-testing.github.io/www.so.com/s?ie=utf-8&shb=1&src=360sou_home&q=7zip) | [Universal-USB-Installer](http://soft.so.com/search?q=Universal-USB-Installer) | [emclient](http://www.emclient.com/download) | [sumatrapd](http://www.sumatrapdfreader.org/downloadafter.html) +火狐插件 | oscobo |SwitchyOmega |RESTED |Video DownloadHelper +chrome插件 |SwitchyOmega +代码评审 | [reviewboard](https://github.com/reviewboard/reviewboard) [rietveld](https://github.com/rietveld-codereview/rietveld) | [Gerrit](https://www.gerritcodereview.com/) | reviewboard的github评分较高 | [更多参考](https://en.wikipedia.org/wiki/List_of_tools_for_code_review) | [更多参考](https://www.google.com.hk/?gws_rd=ssl#safe=strict&q=best+code+review+tool) | +其他 |[wujie](https://github.com/wujieliulan/forum) + + +## python知名库 + +### web自动化 + +- pyauto + +https://chromium.googlesource.com/chromium/src/chrome/test/pyautolib/+/8201b6f5806adfd6cc7d5ec99701f4a01bdb6d64/pyauto.py + +http://zqpythonic.qiniucdn.com/data/20120706150852/index.html + +### 运维 + +https://github.com/yorkoliu/pyauto + +修改pdf:Foxit PDF Editor 录屏:超级录屏 + +[网络安全快速入门15-SQL注入](https://www.jianshu.com/p/e3db74639607) +[网络安全快速入门1-什么是黑客?](https://www.jianshu.com/p/1e254809192e) +[在项目中学习软件测试2安全测试](https://www.jianshu.com/p/c94125700e22) + + + + + + + +* 技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728 + +* 道家技术-手相手诊看相中医等钉钉群21734177 qq群:391441566 184175668 338228106 看手相、面相、舌相、抽签、体质识别。服务费50元每人次起。请联系钉钉或者微信pythontesting + From 779afecb9e31c5f29cb9edb288321fb258364ffa Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 25 Nov 2019 05:17:04 +0800 Subject: [PATCH 063/122] modify baidu addesss.md --- addesss.md | 2 +- books.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addesss.md b/addesss.md index 438c9ea..654574a 100644 --- a/addesss.md +++ b/addesss.md @@ -9,7 +9,7 @@ | --- | --- | --- | --- | --- | --- | --- | **常用** | [oscobo](https://www.oscobo.com/) | [谷歌](https://www.google.com.hk/?gws_rd=ssl) |[谷歌翻译](http://translate.google.cn/?hl=zh-CN) |[360百科](https://baike.so.com/doc/1790119-1892991.html) | [维基中文](https://zh.wikipedia.org/wiki/Python) |-| [必应](https://cn.bing.com/search?q=site%3Achina-testing.github.io&qs=n&form=QBLH&sp=-1&pq=site%3Achina-testing.github.io&sc=0-26&sk=&cvid=CF01D3E7586D46EDA7A260FAD61344CD) | [代码搜索](https://searchcode.com/)| [有道词典](http://dict.youdao.com/) | [百度百科](https://baike.baidu.com/item/Python/407313) | [overflow](http://stackoverflow.com/) | -- | [百度](https://www.baidu.com/) |[so](https://www.so.com/s?ie=utf-8&fr=none&src=360sou_newhome&q=site%3Achina-testing.github.io)|[bing翻译](https://cn.bing.com/Translator) |[知乎](https://www.zhihu.com/) | [维基英文](https://en.wikipedia.org/wiki/Python_(programming_language)) | [空气污染](http://aqicn.org/map/hk/#@g/24.0686/113.7764/7z) | +|- | [百度](https://www.baidu.com/) |[so](https://www.so.com/s?ie=utf-8&fr=none&src=360sou_newhome&q=site%3Achina-testing.github.io)|[bing翻译](https://cn.bing.com/Translator) |[知乎](https://www.zhihu.com/) | [维基英文](https://en.wikipedia.org/wiki/Python_(programming_language)) | [空气污染](http://aqicn.org/map/hk/#@g/24.0686/113.7764/7z) | |**技术**| [新浪科技](https://tech.sina.com.cn/) | [guru99](https://www.guru99.com/) |[vogella](https://www.vogella.com/tutorials/) | |**Python** | [pypi](https://pypi.python.org/pypi) | [pymotw](https://pymotw.com) | [effbot](http://effbot.org/librarybook/) |[python库](https://github.com/china-testing/python-api-tesing) | [awesome-python](https://github.com/vinta/awesome-python) | [jobbole](http://python.jobbole.com/) | | Python | [memect](http://memect.com/) | [wiki](https://wiki.python.org/moin/Documentation) | [pythonjobs](http://pythonjobs.github.io/) | [标准库](https://docs.python.org/3/library/) | [python中文](https://docs.python.org/zh-cn/3/) | [自动化库汇总](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md#rest-api-testing) | diff --git a/books.md b/books.md index 858153e..72ad07b 100755 --- a/books.md +++ b/books.md @@ -892,9 +892,9 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 ### 软件测试 - [Pro Apache JMeter Web Application Performance Testing - 2017.pdf](https://www.jianshu.com/p/56125b1c91c0) [下载](https://itbooks.pipipan.com/fs/18113597-384173739) + [Pro Apache JMeter Web Application Performance Testing - 2017.pdf](https://www.jianshu.com/p/56125b1c91c0) - [下载](https://itbooks.pipipan.com/fs/18113597-384173739) - [Performance Testing with JMeter 3 - Third Edition - 2017.pdf](https://www.jianshu.com/p/4c4ce0b8ba45) [下载](https://itbooks.pipipan.com/fs/18113597-384173741) + [Performance Testing with JMeter 3 - Third Edition - 2017.pdf](https://www.jianshu.com/p/4c4ce0b8ba45) - [下载](https://itbooks.pipipan.com/fs/18113597-384173741) [优质代码:软件测试的原则、实践与模式 \- 2015.pdf](https://itbooks.pipipan.com/fs/18113597-316074102) @@ -1296,9 +1296,9 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 ## 架构 -[书籍:企业IT架构转型之道:阿里巴巴中台战略思想与架构实战.pdf](https://www.jianshu.com/p/40ee76d984d0) [下载](https://itbooks.pipipan.com/fs/18113597-394414631) +[书籍:企业IT架构转型之道:阿里巴巴中台战略思想与架构实战.pdf](https://www.jianshu.com/p/40ee76d984d0) - [下载](https://itbooks.pipipan.com/fs/18113597-394414631) -[书籍:流程的永恒之道](https://www.jianshu.com/p/435cf0fd9ce9) [下载](https://itbooks.pipipan.com/fs/18113597-384173739) +[书籍:流程的永恒之道](https://www.jianshu.com/p/435cf0fd9ce9) - [下载](https://itbooks.pipipan.com/fs/18113597-384173739) From 06f49062ac8337d59f3d4d93da10f91131c4f4a0 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 25 Nov 2019 05:41:26 +0800 Subject: [PATCH 064/122] add 5kindle password in addesss.md --- addesss.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addesss.md b/addesss.md index 654574a..2e81463 100644 --- a/addesss.md +++ b/addesss.md @@ -2,7 +2,7 @@ * [电影 视频 下载](https://github.com/china-testing/python-api-tesing/blob/master/videos.md) * [IT类书籍 下载](https://github.com/china-testing/python-api-tesing/blob/master/books.md) -技术支持讨论qq群:630011153 144081101 6089740下载 +技术支持讨论qq群:630011153 144081101 6089740 | 类别 | 名称 | 名称 | 名称 | 名称 | 名称 | 名称 @@ -14,7 +14,7 @@ |**Python** | [pypi](https://pypi.python.org/pypi) | [pymotw](https://pymotw.com) | [effbot](http://effbot.org/librarybook/) |[python库](https://github.com/china-testing/python-api-tesing) | [awesome-python](https://github.com/vinta/awesome-python) | [jobbole](http://python.jobbole.com/) | | Python | [memect](http://memect.com/) | [wiki](https://wiki.python.org/moin/Documentation) | [pythonjobs](http://pythonjobs.github.io/) | [标准库](https://docs.python.org/3/library/) | [python中文](https://docs.python.org/zh-cn/3/) | [自动化库汇总](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md#rest-api-testing) | | |[realpython](https://realpython.com/) |[pbpython_pd](https://pbpython.com/) |[quizzes](https://realpython.com/quizzes/) -| 本人博客 | [python中文库](https://bitbucket.org/xurongzhong/python-chinese-library/wiki/browse/) | [工作日志](https://bitbucket.org/xurongzhong/work_log/wiki/browse/) | [生活](https://bitbucket.org/xurongzhong/life/wiki/browse/) | [健康](https://bitbucket.org/xurongzhong/health/wiki/browse/) | [python小脚本](https://bitbucket.org/xurongzhong/small_python_daily_tools/wiki/browse/) | [软件测试博客](https://bitbucket.org/xurongzhong/testing/wiki/browse/) | +| 本人博客 | [python中文库](https://bitbucket.org/xurongzhong/python-chinese-library/wiki/browse/) | [工作日志](https://bitbucket.org/xurongzhong/work_log/wiki/browse/) | [生活](https://bitbucket.org/xurongzhong/life/wiki/browse/) | [健康](https://bitbucket.org/xurongzhong/health/wiki/browse/) | [python小脚本](https://bitbucket.org/xurongzhong/small_python_daily_tools/wiki/browse/) | [软件测试](https://bitbucket.org/xurongzhong/testing/wiki/browse/) | | 每日新闻 | [美国之音](http://www.voachinese.com/) | [联合早报](http://www.zaobao.com/) | [天气预报](http://www.weather.com.cn/weather/101280601.shtml) | [ft中文](http://www.ftchinese.com/) | [华尔街](http://cn.wsj.com/gb/index.asp) | [路透社](http://cn.reuters.com) | [mc.ai](https://mc.ai/) | | [cnet](http://www.sznews.com/news/node_18235.htm)  | | 排名 | [编程流行度](http://pypl.github.io/PYPL.html) | [TIOBE](http://www.tiobe.com/tiobe-index/) | [数据库排名](http://db-engines.com/en/ranking) | [IEEE](http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages) | [codeevalblog](http://blog.codeeval.com/codeevalblog) | [redmonk](http://redmonk.com/sogrady/category/programming-languages/) | @@ -23,7 +23,7 @@ | 购物 | [亚马逊](https://www.amazon.cn/) | [天猫](https://www.tmall.com/) | [淘宝](https://china-testing.github.io/www.taobao.com) | [互动出版](http://www.china-pub.com/) | | | 博客 | [郑永年](http://www.caogen.com/blog/index.aspx?ID=66) | | 书籍 | [allitebooks](http://www.allitebooks.com/) | [archive](https://archive.org/details/texts) | [DigiLibraries](http://digilibraries.com/) | [smtebooks](https://smtebooks.com/) | -| 书籍 | [rufengso](http://www.rufengso.net/) | [finelybook](http://finelybook.com/) | [pansoso](http://www.pansoso.com/) | [wowebook](http://www.wowebook.org/) | [5kindle](https://5kindle.com/books/29452/) | [爱知客](http://www.izhike.cn/) | +| 书籍 | [rufengso](http://www.rufengso.net/) | [finelybook](http://finelybook.com/) | [pansoso](http://www.pansoso.com/) | [wowebook](http://www.wowebook.org/) | [5kindle—68682019](https://5kindle.com/books/29452/) | [爱知客](http://www.izhike.cn/) | | 工具 | [Git-Cheat-Sheet](https://github.com/flyhigher139/Git-Cheat-Sheet) | [web酷狗](http://web.kugou.com/) | [网站排行](http://top.chinaz.com/) | | | 下载 | [youtube下载](https://china-testing.github.io/www.findyoutube.com) | [cnet下载](https://archive.org/details/texts) | [3322](http://www.3322.cc/sort/index.html) | [pc6](http://www.pc6.com/) | [西西软件](http://www.cr173.com/) | Linux | [rpmfind](http://fr2.rpmfind.net/) | [pkgs](https://pkgs.org/) | [RPM Search](http://rpm.pbone.net/) | | @@ -33,7 +33,8 @@ 万年历 |[黄金易园](http://www.hjqing.com/find/2000/index.asp) | [360](http://hao.360.cn/rili/) | **软件** -| 类别 | 名称 | 名称 | 名称 | 名称 | 名称 | 名称 + +| 类别 | 名称 | 名称 | 名称 | 名称 | 名称 | 名称 | | --- | --- | --- | --- | --- | --- | --- | **软件** | [pdf转word](https://china-testing.github.io/www.free-pdf-to-word-converter.com/downloads/pdf-to-word-converter.exe) | [在线作图](https://www.draw.io/) | [软件替代](https://china-testing.github.io/alternativeto.net/software/beyond-compare/) | [7zip](https://china-testing.github.io/www.so.com/s?ie=utf-8&shb=1&src=360sou_home&q=7zip) | [Universal-USB-Installer](http://soft.so.com/search?q=Universal-USB-Installer) | [emclient](http://www.emclient.com/download) | [sumatrapd](http://www.sumatrapdfreader.org/downloadafter.html) 火狐插件 | oscobo |SwitchyOmega |RESTED |Video DownloadHelper From a3dfebabaccea9628bf6b61c051a2b8877afdd39 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 25 Nov 2019 09:33:32 +0800 Subject: [PATCH 065/122] remove pyauto of chrome --- addesss.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/addesss.md b/addesss.md index 2e81463..1603a76 100644 --- a/addesss.md +++ b/addesss.md @@ -29,8 +29,20 @@ | Linux | [rpmfind](http://fr2.rpmfind.net/) | [pkgs](https://pkgs.org/) | [RPM Search](http://rpm.pbone.net/) | | | [用药参考](http://drugs.medlive.cn/index.jsp) | [医案查询](http://www.gjmlzy.com:83/KBFmsSearch/Main/Index6) | [中药大全](http://zhongyao.m.supfree.net/) | [中医百科](https://zhongyibaike.com/wiki/%E5%9B%9B%E5%90%9B%E5%AD%90%E6%B1%A4) | | 中草药 | [植物图库](http://www.cses.tc.edu.tw/~tiwngien/picture%20datas/plant/oftensees.htm) | [福星花园](https://china-testing.github.io/bruce0342.blogspot.hk) | [认识植物](http://kplant.biodiv.tw/) | [中国植物志](http://frps.eflora.cn/) | [医学百科](http://www.a-hospital.com/w/%E7%99%BD%E8%83%8C%E5%8F%B6) | [中医书籍](http://www.zysj.com.cn/lilunshuji/index.html) -| **道家** |[元亨排盘](https://www.china95.net/paipan/bazi/) | [子易排盘](http://forecasting.hk/8words/) | [八字五行算命](http://www.chineseastrologyonline.com/CAGB.htm) | [星相命理](http://tiger168.com/luckytop/lucky03.html) -万年历 |[黄金易园](http://www.hjqing.com/find/2000/index.asp) | [360](http://hao.360.cn/rili/) | + +**八字** + +- 排盘 +[元亨排盘](https://www.china95.net/paipan/bazi/) [子易排盘](http://forecasting.hk/8words/) [八字五行算命](http://www.chineseastrologyonline.com/CAGB.htm) [星相命理](http://tiger168.com/luckytop/lucky03.html) + +- 反推 + +[f中华预测网-1883-2031](http://www.zhycw.com/pp/index2.aspx) + +- 万年历 + +[黄金易园](http://www.hjqing.com/find/2000/index.asp) [360](http://hao.360.cn/rili/) + **软件** @@ -43,18 +55,6 @@ chrome插件 |SwitchyOmega 其他 |[wujie](https://github.com/wujieliulan/forum) -## python知名库 - -### web自动化 - -- pyauto - -https://chromium.googlesource.com/chromium/src/chrome/test/pyautolib/+/8201b6f5806adfd6cc7d5ec99701f4a01bdb6d64/pyauto.py - -http://zqpythonic.qiniucdn.com/data/20120706150852/index.html - -### 运维 - https://github.com/yorkoliu/pyauto 修改pdf:Foxit PDF Editor 录屏:超级录屏 From 9f524b15ba920a26c12ab3d417fc04dd519c403a Mon Sep 17 00:00:00 2001 From: china-testing Date: Sat, 30 Nov 2019 17:36:57 +0800 Subject: [PATCH 066/122] =?UTF-8?q?Add=20=E4=B8=89=E9=AB=98=E6=80=8E?= =?UTF-8?q?=E4=B9=88=E5=90=83=E6=80=8E=E4=B9=88=E5=85=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/society_books.md b/society_books.md index 031454f..d571ab8 100755 --- a/society_books.md +++ b/society_books.md @@ -57,6 +57,8 @@ [图解八段锦、五禽戏、易筋经-《国医绝学健康馆》编委会.pdf](https://itbooks.pipipan.com/fs/18113597-313704156) +[“三高”怎么吃怎么养](https://sn9.us/file/18113597-410429507) + ## 中医 From 1b5321e657bfeeacfcbebbe8808288246d10636a Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 2 Dec 2019 09:14:24 +0800 Subject: [PATCH 067/122] =?UTF-8?q?Add=20=E7=BB=88=E8=BA=AB=E6=88=90?= =?UTF-8?q?=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/society_books.md b/society_books.md index d571ab8..f657c33 100755 --- a/society_books.md +++ b/society_books.md @@ -21,6 +21,7 @@ * [国学](#国学) * [地理](#地理) * [书法](#书法) + * [励志](#励志) # 经典软件 @@ -425,6 +426,9 @@ [敦煌古代书法艺术 \- 2008.pdf](https://itbooks.pipipan.com/fs/18113597-317105598) +## 励志 + +[终身成长-2017](https://sn9.us/file/18113597-410667858) * [python3快速入门教程1 turtle绘图-1开始](https://china-testing.github.io/python3_crash1.html) From 3e5fc9256864caab0efc36431a6613e804678867 Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 3 Dec 2019 07:00:59 +0800 Subject: [PATCH 068/122] =?UTF-8?q?Add=20=E6=8E=A8=E6=8B=BF=E5=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- society_books.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 06c89ac..1fcb354 100755 --- a/README.md +++ b/README.md @@ -1085,7 +1085,7 @@ Python实现的数据库。 * s4cmd:超级 S3 命令行工具,性能更加强劲。[链接](https://github.com/bloomreach/s4cmd) - * you-get:YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。[链接](https://github.com/soimort/you-get) --推荐 + * you-get:优酷、YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。[链接](https://github.com/soimort/you-get) --强烈推荐 * youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频。[链接](http://rg3.github.io/youtube-dl/) diff --git a/society_books.md b/society_books.md index f657c33..0d8af26 100755 --- a/society_books.md +++ b/society_books.md @@ -74,6 +74,10 @@ [中药学-中医药出版社 十版 大学教材.pdf](https://itbooks.pipipan.com/fs/18113597-308188125) +[推拿学-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-410967247) + +[中医基础理论-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-309192907) + ### 中医经典 [医学心悟 (中医临床必读丛书) - 2006.pdf](https://itbooks.pipipan.com/fs/18113597-375127871) From 677e4824b09502b6d5ba6f96994f8dec6e77e32f Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 3 Dec 2019 08:41:23 +0800 Subject: [PATCH 069/122] =?UTF-8?q?Add=20=E4=B8=AD=E5=8C=BB=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E7=90=86=E8=AE=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/society_books.md b/society_books.md index 0d8af26..a1e452f 100755 --- a/society_books.md +++ b/society_books.md @@ -76,7 +76,7 @@ [推拿学-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-410967247) -[中医基础理论-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-309192907) +[中医基础理论-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-410967245) ### 中医经典 From 03abf71277108c52b86279f2c0691b55493cdbca Mon Sep 17 00:00:00 2001 From: china-testing Date: Sat, 7 Dec 2019 17:09:34 +0800 Subject: [PATCH 070/122] Add articles.md --- articles.md | 28 ++++++++++++++++++++++++++++ society_books.md | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 articles.md diff --git a/articles.md b/articles.md new file mode 100644 index 0000000..7a9ed8d --- /dev/null +++ b/articles.md @@ -0,0 +1,28 @@ + * [国学 中医 历史等社科类书籍下载](https://github.com/china-testing/python-api-tesing/blob/master/society_books.md) + * [电影 视频 下载](https://github.com/china-testing/python-api-tesing/blob/master/videos.md) + * [IT类书籍 下载](https://github.com/china-testing/python-api-tesing/blob/master/books.md) + +今日头条极速版看新闻可以赚钱,邀请码DBG8ADUK + + + + + * [hack-quickstart](#hack-quickstart) + + + +# hack-quickstart + +- 技术支持qq群:630011153 144081101 + +[网络安全快速入门1-什么是黑客?](https://www.jianshu.com/p/1e254809192e) + +[网络安全快速入门2-计算机系统的潜在安全威胁](https://www.jianshu.com/p/7fd5cbbcdc02) + +[网络安全快速入门3-技能要求](https://www.jianshu.com/p/468cd06c7f26) + +[网络安全快速入门4-社会工程学](https://www.jianshu.com/p/0ea7dd1ed2d3) + +[网络安全快速入门5-密码学及密码破解工具CrypTool实战](https://www.jianshu.com/p/6c33fb28c9be) + +[网络安全快速入门15-SQL注入](https://www.jianshu.com/p/e3db74639607) diff --git a/society_books.md b/society_books.md index a1e452f..3a4e73e 100755 --- a/society_books.md +++ b/society_books.md @@ -78,6 +78,8 @@ [中医基础理论-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-410967245) +[新编中医儿科学.epub](https://sn9.us/file/18113597-410971369) + ### 中医经典 [医学心悟 (中医临床必读丛书) - 2006.pdf](https://itbooks.pipipan.com/fs/18113597-375127871) From 426da84974bccf623f2b976c4079b9926368f42b Mon Sep 17 00:00:00 2001 From: china-testing Date: Sat, 14 Dec 2019 23:11:47 +0800 Subject: [PATCH 071/122] =?UTF-8?q?Add=20=E5=A4=A9=E6=9C=BA=E5=A6=99?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addesss.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addesss.md b/addesss.md index 1603a76..a9dc711 100644 --- a/addesss.md +++ b/addesss.md @@ -37,7 +37,7 @@ - 反推 -[f中华预测网-1883-2031](http://www.zhycw.com/pp/index2.aspx) +[中华预测网-1883-2031](http://www.zhycw.com/pp/index2.aspx) [天机妙算](https://test.askluck.com/bazi/fantui/) - 万年历 From 568875781a84dc862b45f8a24eae73ae3127f138 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 30 Dec 2019 16:59:00 +0800 Subject: [PATCH 072/122] Add 2020_100_examples --- 2020_100_examples/1_binary_search.py | 24 ++++++++++++++++++++++++ 2020_100_examples/2_selection_sort.py | 24 ++++++++++++++++++++++++ README.md | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 2020_100_examples/1_binary_search.py create mode 100644 2020_100_examples/2_selection_sort.py diff --git a/2020_100_examples/1_binary_search.py b/2020_100_examples/1_binary_search.py new file mode 100644 index 0000000..688bee4 --- /dev/null +++ b/2020_100_examples/1_binary_search.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# 技术支持:dwz.cn/qkEfX1u0 项目实战讨论QQ群630011153 144081101 +# CreateDate: 2019-12-29 + + +def binary_search(items, item): + low = 0 + high = len(items) - 1 + while low <= high: + mid = (low + high) // 2 + guess = items[mid] + if guess == item: + return mid + elif guess > item: + high = mid - 1 + else: + low = mid + 1 + return None + +l = list(range(1,100,3)) + +print(binary_search(l, 31)) +print(binary_search(l, 30)) \ No newline at end of file diff --git a/2020_100_examples/2_selection_sort.py b/2020_100_examples/2_selection_sort.py new file mode 100644 index 0000000..2cc7d4d --- /dev/null +++ b/2020_100_examples/2_selection_sort.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# 技术支持:dwz.cn/qkEfX1u0 项目实战讨论QQ群630011153 144081101 +# CreateDate: 2019-12-29 + +def find_smallest(arr): + # Stores the smallest value + smallest = arr[0] + # Stores the index of the smallest value + smallest_index = 0 + for i in range(1, len(arr)): + if arr[i] < smallest: + smallest_index = i + return smallest_index + +def selection_sort(arr): + new_arr = [] + for i in range(len(arr)): + # Finds the smallest element in the array and adds it to the new array + smallest = find_smallest(arr) + new_arr.append(arr.pop(smallest)) + return new_arr + +print(selection_sort([5, 3, 6, 2, 10])) \ No newline at end of file diff --git a/README.md b/README.md index 1fcb354..e5ea4e7 100755 --- a/README.md +++ b/README.md @@ -439,7 +439,7 @@ radar 因为github星级太少而未收录 最近版本参见原文:https://gi Python的算法和设计模式的实现。 - * algorithms - Python的算法模块。 [链接](https://github.com/nryoung/algorithms) + * algorithms - Python的算法模块。 [链接](https://github.com/keon/algorithms) * PyPattyrn - 简单有效实现通用设计模式。 [链接](https://github.com/tylerlaberge/PyPattyrn) From d9fb03e1ab47f1ee9e36ac9f61e7a7b51745974a Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 1 Jan 2020 19:07:11 +0800 Subject: [PATCH 073/122] Add pandas in address.md --- addesss.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addesss.md b/addesss.md index a9dc711..a312a07 100644 --- a/addesss.md +++ b/addesss.md @@ -13,10 +13,10 @@ |**技术**| [新浪科技](https://tech.sina.com.cn/) | [guru99](https://www.guru99.com/) |[vogella](https://www.vogella.com/tutorials/) | |**Python** | [pypi](https://pypi.python.org/pypi) | [pymotw](https://pymotw.com) | [effbot](http://effbot.org/librarybook/) |[python库](https://github.com/china-testing/python-api-tesing) | [awesome-python](https://github.com/vinta/awesome-python) | [jobbole](http://python.jobbole.com/) | | Python | [memect](http://memect.com/) | [wiki](https://wiki.python.org/moin/Documentation) | [pythonjobs](http://pythonjobs.github.io/) | [标准库](https://docs.python.org/3/library/) | [python中文](https://docs.python.org/zh-cn/3/) | [自动化库汇总](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md#rest-api-testing) | -| |[realpython](https://realpython.com/) |[pbpython_pd](https://pbpython.com/) |[quizzes](https://realpython.com/quizzes/) +| |[realpython](https://realpython.com/) |[pbpython_pd](https://pbpython.com/) |[quizzes](https://realpython.com/quizzes/) |[marsja](https://www.marsja.se/category/programming/python/) | 本人博客 | [python中文库](https://bitbucket.org/xurongzhong/python-chinese-library/wiki/browse/) | [工作日志](https://bitbucket.org/xurongzhong/work_log/wiki/browse/) | [生活](https://bitbucket.org/xurongzhong/life/wiki/browse/) | [健康](https://bitbucket.org/xurongzhong/health/wiki/browse/) | [python小脚本](https://bitbucket.org/xurongzhong/small_python_daily_tools/wiki/browse/) | [软件测试](https://bitbucket.org/xurongzhong/testing/wiki/browse/) | | 每日新闻 | [美国之音](http://www.voachinese.com/) | [联合早报](http://www.zaobao.com/) | [天气预报](http://www.weather.com.cn/weather/101280601.shtml) | [ft中文](http://www.ftchinese.com/) | [华尔街](http://cn.wsj.com/gb/index.asp) | [路透社](http://cn.reuters.com) -| [mc.ai](https://mc.ai/) | | [cnet](http://www.sznews.com/news/node_18235.htm)  | +| pandas | [listendata](https://www.listendata.com/search/label/Python) |[mc.ai](https://mc.ai/) |[cnet](http://www.sznews.com/news/node_18235.htm)  | | 排名 | [编程流行度](http://pypl.github.io/PYPL.html) | [TIOBE](http://www.tiobe.com/tiobe-index/) | [数据库排名](http://db-engines.com/en/ranking) | [IEEE](http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages) | [codeevalblog](http://blog.codeeval.com/codeevalblog) | [redmonk](http://redmonk.com/sogrady/category/programming-languages/) | | 测试 | [谷歌测试博客](https://testing.googleblog.com/) | [webpagetest](https://www.webpagetest.org/) |[testandcode](https://testandcode.com) | | | | 武冈 | [红网论坛](http://bbs.rednet.cn/forum.php?mod=forumdisplay&fid=74) | [百度武冈](http://news.baidu.com/ns?word=%CE%E4%B8%D4&tn=news&from=news&cl=2&rn=20&ct=0) | [武冈政府](http://www.wugang.gov.cn/) | [武冈天气](http://www.weather.com.cn/weather/101250908.shtml) | | From a98a633d4d5eb9393295c1990736f3b647e82a8e Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 9 Feb 2020 08:59:22 +0800 Subject: [PATCH 074/122] add douyin in readme --- 2020_100_examples/4_tree_mid_traversal.py | 74 +++++++++++++++++++++++ README.md | 3 +- 2 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 2020_100_examples/4_tree_mid_traversal.py diff --git a/2020_100_examples/4_tree_mid_traversal.py b/2020_100_examples/4_tree_mid_traversal.py new file mode 100644 index 0000000..610e331 --- /dev/null +++ b/2020_100_examples/4_tree_mid_traversal.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# 技术支持:dwz.cn/qkEfX1u0 项目实战讨论QQ群630011153 144081101 +# CreateDate: 2020-1-14 + +class Node: + + def __init__(self, data): + + self.left = None + self.right = None + self.data = data +# Insert Node + def insert(self, data): + + if self.data: + if data < self.data: + if self.left is None: + self.left = Node(data) + else: + self.left.insert(data) + elif data > self.data: + if self.right is None: + self.right = Node(data) + else: + self.right.insert(data) + else: + self.data = data + +# Print the Tree + def print_tree(self): + if self.left: + self.left.print_tree() + print( self.data), + if self.right: + self.right.print_tree() + +# Inorder traversal +# Left -> Root -> Right + def mid_traversal(self, root): + res = [] + if root: + res = self.mid_traversal(root.left) + res.append(root.data) + res = res + self.mid_traversal(root.right) + return res + + # Inorder traversal + # Left -> Root -> Right + def mid_traversal_stack(self, root): + stack = [] + result = [] + node = root + while node or stack: + if node: + stack.append(node) + node = node.left + else: + node = stack.pop() + result.append(node.data) + node = node.right + return result + + + +root = Node(27) +root.insert(14) +root.insert(35) +root.insert(10) +root.insert(19) +root.insert(31) +root.insert(42) +print(root.mid_traversal(root)) +print(root.mid_traversal_stack(root)) \ No newline at end of file diff --git a/README.md b/README.md index e5ea4e7..d9b3422 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ book_scraper/requests_allitbooks.py 根据搜索词下载allitbooks的书籍,[ wingide6 破解:other/wingide6_python3_crack.py - * [平安产险技术岗内部推荐-大数据测试开发工程师等-欢迎中年人和2020应届生](https://www.jianshu.com/p/e6255434be56) * [国学 中医 历史等社科类书籍下载](https://github.com/china-testing/python-api-tesing/blob/master/society_books.md) * [电影 视频 下载](https://github.com/china-testing/python-api-tesing/blob/master/videos.md) * [IT类书籍 下载](https://github.com/china-testing/python-api-tesing/blob/master/books.md) @@ -46,7 +45,7 @@ tools目录: * [python测试开发自动化测试数据分析人工智能自学每周一练](https://china-testing.github.io/python_weeks.html) * [软件自动化测试初学者忠告](https://china-testing.github.io/testing_automation_tips.html) -* 今日头条极速版看新闻可以赚钱,邀请码DBG8ADUK +* 今日头条极速版看新闻可以赚钱,邀请码DBG8ADUK 抖音极速版:889494501 火山极速版:277335131 * 技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728 From 729d2675c5ae982119b8525537042d246ab35129 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 12 Feb 2020 21:40:03 +0800 Subject: [PATCH 075/122] =?UTF-8?q?Add=20=E6=89=93=E9=80=A0=E5=BA=94?= =?UTF-8?q?=E5=AF=B9=E4=B8=8D=E7=A1=AE=E5=AE=9A=E6=80=A7=E7=9A=84=E6=95=8F?= =?UTF-8?q?=E6=8D=B7=E5=9B=A2=E9=98=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 1 + 1 file changed, 1 insertion(+) diff --git a/society_books.md b/society_books.md index 3a4e73e..0a1dd9b 100755 --- a/society_books.md +++ b/society_books.md @@ -435,6 +435,7 @@ ## 励志 [终身成长-2017](https://sn9.us/file/18113597-410667858) +[赋能:打造应对不确定性的敏捷团队.pdf](https://sn9.us/file/18113597-422109170) * [python3快速入门教程1 turtle绘图-1开始](https://china-testing.github.io/python3_crash1.html) From 982be5ab81323252274195e688313a001c867feb Mon Sep 17 00:00:00 2001 From: china-testing Date: Sat, 15 Feb 2020 19:37:55 +0800 Subject: [PATCH 076/122] =?UTF-8?q?Add=20=E6=96=B0=E5=9E=8B=E5=86=A0?= =?UTF-8?q?=E7=8A=B6=E7=97=85=E6=AF=92=E6=84=9F=E6=9F=93=E7=9A=84=E8=82=BA?= =?UTF-8?q?=E7=82=8E=E5=85=AC=E4=BC=97=E9=98=B2=E6=8A=A4=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/society_books.md b/society_books.md index 0a1dd9b..2bab154 100755 --- a/society_books.md +++ b/society_books.md @@ -60,6 +60,11 @@ [“三高”怎么吃怎么养](https://sn9.us/file/18113597-410429507) +[新型冠状病毒感染的肺炎公众防护指南.pdf](https://sn9.us/file/18113597-422639269) + +[新型冠状病毒感染的肺炎防治知识手册](https://sn9.us/file/18113597-422639242) + + ## 中医 From 08555cd97ca291899c0f11480f3dbc20fe70a771 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 19 Feb 2020 14:41:06 +0800 Subject: [PATCH 077/122] =?UTF-8?q?add=20new=20line=20in=20=E8=B5=8B?= =?UTF-8?q?=E8=83=BD=EF=BC=9A=E6=89=93=E9=80=A0=E5=BA=94=E5=AF=B9=E4=B8=8D?= =?UTF-8?q?=E7=A1=AE=E5=AE=9A=E6=80=A7=E7=9A=84=E6=95=8F=E6=8D=B7=E5=9B=A2?= =?UTF-8?q?=E9=98=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 1 + 1 file changed, 1 insertion(+) diff --git a/society_books.md b/society_books.md index 2bab154..a03da1d 100755 --- a/society_books.md +++ b/society_books.md @@ -440,6 +440,7 @@ ## 励志 [终身成长-2017](https://sn9.us/file/18113597-410667858) + [赋能:打造应对不确定性的敏捷团队.pdf](https://sn9.us/file/18113597-422109170) From 0bab4dfa986bd2a0e910df0f5969c83419eff4ab Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 2 Mar 2020 06:49:55 +0800 Subject: [PATCH 078/122] =?UTF-8?q?=E4=B8=AD=E5=8C=BB=E6=B0=94=E5=8A=9F?= =?UTF-8?q?=E5=AD=A6=20=E7=AC=AC=E5=8D=81=E7=89=88.pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/society_books.md b/society_books.md index a03da1d..b8e085f 100755 --- a/society_books.md +++ b/society_books.md @@ -85,6 +85,8 @@ [新编中医儿科学.epub](https://sn9.us/file/18113597-410971369) +[中医气功学 第十版.pdf](https://sn9.us/file/18113597-425882095) + ### 中医经典 [医学心悟 (中医临床必读丛书) - 2006.pdf](https://itbooks.pipipan.com/fs/18113597-375127871) From 0dec056ed12f7cb2d32cda20ded10e37e7415695 Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 3 Mar 2020 07:13:59 +0800 Subject: [PATCH 079/122] =?UTF-8?q?Add=20=E7=94=9F=E6=B4=BB=E6=99=BA?= =?UTF-8?q?=E6=85=A7=E6=8E=8C=E4=B8=AD=E5=AE=9D37=5F=E8=A7=A3=E5=AF=86?= =?UTF-8?q?=E5=AE=B6=E8=A3=851=E5=AE=B6=E5=BA=AD=E9=A3=8E=E6=B0=B4?= =?UTF-8?q?=E4=B8=80=E5=AD=A6=E5=B0=B1=E4=BC=9A.pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/society_books.md b/society_books.md index b8e085f..1264384 100755 --- a/society_books.md +++ b/society_books.md @@ -404,6 +404,8 @@ [藏在地理中的历史学(《海洋与文明》《十二幅地图中的世界史》《地理与世界霸权》共3册 - 2016.pdf](https://itbooks.pipipan.com/fs/18113597-316902270) +[生活智慧掌中宝37_解密家装1家庭风水一学就会.pdf](https://sn9.us/file/18113597-426043708) + ## 书法 From 76d6b56b2fb50eeac8e5295db37cc1e878f4c1ef Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 6 Mar 2020 21:19:13 +0800 Subject: [PATCH 080/122] =?UTF-8?q?Add=20=E9=81=93=E5=AE=B6=E4=B8=8E?= =?UTF-8?q?=E6=80=A7=E6=96=87=E5=8C=96.pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/society_books.md b/society_books.md index 1264384..b2a5cf7 100755 --- a/society_books.md +++ b/society_books.md @@ -378,6 +378,8 @@ [中国历史那些事儿系列套装:明朝那些事儿(全7册)、这里曾经是汉朝(全6册)、唐史并不如烟(全5册)、如果这是宋史(全10册).pdf](https://itbooks.pipipan.com/fs/18113597-309521853) +[道家与性文化.pdf](https://sn9.us/file/18113597-426835451) + ## 地理 From c186886d0423c048e2cf3c23792b7f42a3d23f50 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 11 Mar 2020 21:44:19 +0800 Subject: [PATCH 081/122] =?UTF-8?q?ADD=20=E5=9B=9A=E5=BE=92=E5=81=A5?= =?UTF-8?q?=E8=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/society_books.md b/society_books.md index b2a5cf7..3333eda 100755 --- a/society_books.md +++ b/society_books.md @@ -449,6 +449,10 @@ [赋能:打造应对不确定性的敏捷团队.pdf](https://sn9.us/file/18113597-422109170) +[无器械健身.pdf](https://t00y.com/file/18113597-428517739) + +[囚徒健身: 用失传的技艺练就强大的生存实力.pdf](https://t00y.com/file/18113597-428517687) + * [python3快速入门教程1 turtle绘图-1开始](https://china-testing.github.io/python3_crash1.html) * [接口自动化性能测试线上培训大纲](https://china-testing.github.io/testing_training.html) From d9a9ad3091e6424269ffc0aaf85a5008fcce6f99 Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 5 Apr 2020 07:14:14 +0800 Subject: [PATCH 082/122] Add python questions in articles.md --- articles.md | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/articles.md b/articles.md index 7a9ed8d..f8ac72a 100644 --- a/articles.md +++ b/articles.md @@ -7,13 +7,39 @@ - * [hack-quickstart](#hack-quickstart) + * [网络安全快速入门](#hack-quickstart) + * [python测试开发笔试题面试题](#python-questions) +- 技术支持qq群:630011153 144081101 + +# python-questions + +[python经典面试题:列表和元组有什么异同?](https://www.jianshu.com/p/f13bf2bf1f05) + +[python requests库面试笔试题](https://www.jianshu.com/p/374dca87802b) + +[python条件判断面试笔试题](https://www.jianshu.com/p/ae3a59617ef7) + +[python并发面试笔试题](https://www.jianshu.com/p/e4f7e5637708) + +[python基础数据类型面试笔试题](https://www.jianshu.com/p/663f17c23b17) + +[python字典面试笔试题](https://www.jianshu.com/p/146b2ee5fe28) + +[python集合面试笔试题](https://www.jianshu.com/p/cd6a6586ff2b) + +[python字符串面试笔试题](https://www.jianshu.com/p/765879a94522) + +[Python经典面试题](https://www.jianshu.com/p/55cc75c99061) + +[Python经典面试题: 用3种方法实现堆栈和队列并示例实际应用场景](https://www.jianshu.com/p/c990427ca608) + +[python 3.7极速入门教程8语言比较与面试考试试题](https://www.jianshu.com/p/940664d1824a) # hack-quickstart -- 技术支持qq群:630011153 144081101 + [网络安全快速入门1-什么是黑客?](https://www.jianshu.com/p/1e254809192e) @@ -26,3 +52,5 @@ [网络安全快速入门5-密码学及密码破解工具CrypTool实战](https://www.jianshu.com/p/6c33fb28c9be) [网络安全快速入门15-SQL注入](https://www.jianshu.com/p/e3db74639607) + + From 9abfd88aada57bea24f49b86e942ca7f63328857 Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 5 Apr 2020 08:51:50 +0800 Subject: [PATCH 083/122] Add testing in articles.md --- articles.md | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 298 insertions(+), 1 deletion(-) diff --git a/articles.md b/articles.md index f8ac72a..d179dd8 100644 --- a/articles.md +++ b/articles.md @@ -6,12 +6,20 @@ - + * [招聘](#hr) * [网络安全快速入门](#hack-quickstart) * [python测试开发笔试题面试题](#python-questions) + * [软件测试](#testing) - 技术支持qq群:630011153 144081101 +# hr + +[平安产险数据平台招聘外包测试开发](https://www.jianshu.com/p/22aee46f7631) + +[平安产险技术岗2020年内部推荐-大数据测试开发工程师等-欢迎中年人](https://www.jianshu.com/p/e6255434be56) + + # python-questions [python经典面试题:列表和元组有什么异同?](https://www.jianshu.com/p/f13bf2bf1f05) @@ -53,4 +61,293 @@ [网络安全快速入门15-SQL注入](https://www.jianshu.com/p/e3db74639607) +# testing + +[平安产险数据平台招聘外包测试开发](https://www.jianshu.com/p/22aee46f7631) + +[平安产险技术岗2020年内部推荐-大数据测试开发工程师等-欢迎中年人](https://www.jianshu.com/p/e6255434be56) + +[2018软件测试标准汇总下载](https://www.jianshu.com/p/de8a6d138c62) + +[在项目中学习软件测试1网银测试](https://www.jianshu.com/p/99aeb2de6109) + +[在项目中学习软件测试2安全测试](https://www.jianshu.com/p/c94125700e22) + +[持续集成工具jenkins书籍](https://www.jianshu.com/p/3987b3fc3b81) + +[构建工具buildbot教程 持续交付与构建](https://www.jianshu.com/p/e4b090b84ee9) + +[软件测试工具书籍与面试题汇总下载(持续更新)](https://www.jianshu.com/p/455a874a42e8) + +[Pro Apache JMeter Web Application Performance Testing - 2017.pdf](https://www.jianshu.com/p/56125b1c91c0) + +[Performance Testing with JMeter 3 - Third Edition - 2017.pdf](https://www.jianshu.com/p/4c4ce0b8ba45) + +[伟大的测试人员的伟大测试工具 Great Testing Tools for Great Testers - 2016.pdf](https://www.jianshu.com/p/3f53170bf010) + +[书籍:ASTQB-BCS移动测试基础指南 Mobile Testing An ASTQB-BCS Foundation Guide - 2018.pdf](https://www.jianshu.com/p/a252732f8f1c) + +[书籍:Python渗透测试实战 Practical Security Automation and Testing(python)- 2019.pdf](https://www.jianshu.com/p/cbec5147d6be) + +[书籍:Python渗透测试实战 Hands-On Penetration Testing with Python - 2019.pdf](https://www.jianshu.com/p/5f63342c50f1) + +[书籍:Python Testing Cookbook, 2nd Edition - 2018.pdf python测试cookbook](https://www.jianshu.com/p/e03642383ea7) + +[Analytic Methods in Systems and Software Testing-2018 系统和软件测试分析方法](https://www.jianshu.com/p/20bf6848407d) + +[Python自动化测试新书下载: 使用Selenium工具和Python自动化浏览器](https://www.jianshu.com/p/8477aa2de10c) + +[接口测试面试题](https://www.jianshu.com/p/ceedb8696368) + +[为什么选择软件测试作为职业?](https://www.jianshu.com/p/d586a8ac3c7c) + +[软件测试精品文章与资源汇总](https://www.jianshu.com/p/faffa3983bbd) + +[软件自动化测试初学者忠告](https://www.jianshu.com/p/6a08dd5178df) + +[2019软件测试:移动应用性能测试:CheckList 工具(Andriod和iOS)](https://www.jianshu.com/p/745e998bc6d4) + +[性能测试艺术](https://www.jianshu.com/p/97db4dc786e3) + +[2019软件测试:游戏测试-如何测试移动/桌面应用程序](https://www.jianshu.com/p/62cc1628d170) + +[Android和iOS的14款最佳移动应用测试工具(2019年)](https://www.jianshu.com/p/51347e61a144) + +[使用Python学习selenium测试工具](https://www.jianshu.com/p/bed1b1a4691a) + +[selenium工具python快速入门1简介](https://www.jianshu.com/p/7d349a03befa) + +[WebView测试的5个最佳Python框架](https://www.jianshu.com/p/aa24bd8ddca0) + +[大数据工具Hadoop快速入门13大数据测试](https://www.jianshu.com/p/596256fa61d7) + +[降低软件质量的常见观点](https://www.jianshu.com/p/1a20a56f47c5) + +[请为linux cp设计测试用例](https://www.jianshu.com/p/d8f4ba733093) + +[软件测试指标](https://www.jianshu.com/p/8f6272114c54) + +[白盒测试快速入门1-简介](https://www.jianshu.com/p/78ab06468d25) + +[白盒测试快速入门2-静态测试](https://www.jianshu.com/p/9390763f36ed) + +[multi-mechanize性能测试工具](https://www.jianshu.com/p/90df7a1791f8) + +[2018最佳12个开源或免费web服务器和客户端性能测试工具](https://www.jianshu.com/p/52f32a312b9a) + +[性能测试工具ApacheBench](https://www.jianshu.com/p/c72402bfcca6) + +[性能测试工具boom-已迁移今日头条](https://www.jianshu.com/p/ccfcd722c495) + +[性能测试工具locustio](https://www.jianshu.com/p/1a8007d05982) + +[性能测试快速入门1-简介](https://www.jianshu.com/p/7fec01b3d368) + +[测试人员的职业发展图](https://www.jianshu.com/p/ff766857c24d) + +[性能测试工具nGrinder介绍](https://www.jianshu.com/p/89739a1920cb) + +[高效灵活的Java及python性能测试工具Grinder](https://www.jianshu.com/p/024a3474f68b) + +[使用jython进行dubbo接口及ngrinder性能测试](https://www.jianshu.com/p/5e627f880f5f) + +[软件工程快速入门教程1- SDLC软件开发生命周期](https://www.jianshu.com/p/cf04d4167448) + +[软件工程快速入门教程2- 瀑布模型](https://www.jianshu.com/p/7f2d7e2a3556) + +[软件工程快速入门教程3- 增量模型](https://www.jianshu.com/p/c55843620bbb) + +[软件工程快速入门教程4- 螺旋模型](https://www.jianshu.com/p/f4ac30828827) + +[软件工程快速入门教程5- RAD快速应用程序开发模型](https://www.jianshu.com/p/eeec6e92b23a) + +[软件工程快速入门教程6- 原型模型](https://www.jianshu.com/p/ef97b5c7c408) + +[软件工程快速入门教程7-能力成熟度模型CMM](https://www.jianshu.com/p/91f552e1fee4) + +[软件工程快速入门教程8- 多层架构](https://www.jianshu.com/p/0bceddf2477a) + +[软件工程快速入门教程9- 年薪70万的全栈需要什么技能?](https://www.jianshu.com/p/11d616d9f9f4) + +[软件工程快速入门教程10- 函数式编程](https://www.jianshu.com/p/226a8ccd86d2) + +[软件工程快速入门教程11 - MVC](https://www.jianshu.com/p/4106a3ba1c1b) + +[软件工程快速入门教程12 -2019年22个最佳软件开发工具](https://www.jianshu.com/p/e4c98c269feb) + +[软件工程快速入门教程13 -2019年Python、Java、c++等最佳代码覆盖工具](https://www.jianshu.com/p/3ceae82be197) + +[软件工程快速入门教程14 -2019年最佳代码评审及静态分析工具](https://www.jianshu.com/p/1740e66638d1) + +[软件工程快速入门教程15 -2019年最佳编程语言](https://www.jianshu.com/p/080b5fb559c0) + +[敏捷测试开发快速入门教程1什么是敏捷方法论?](https://www.jianshu.com/p/4ed64c50089e) + +[敏捷测试开发快速入门教程2敏捷测试](https://www.jianshu.com/p/b489c2b3bab4) + +[敏捷测试开发快速入门教程4自动化测试](https://www.jianshu.com/p/6a993b0f82af) + +[软件测试快速入门1简介,基础知识和重要性](https://www.jianshu.com/p/6066789b7534) + +[软件测试快速入门2软件测试职业生涯](https://www.jianshu.com/p/c7ae894972bc) + +[软件测试快速入门3原则](https://www.jianshu.com/p/59dd7ea33b98) + +[软件测试快速入门4-V模型](https://www.jianshu.com/p/a4cbece5a78a) + +[软件测试快速入门5-进入退出标准](https://www.jianshu.com/p/132960eff76e) + +[项目管理快速入门1简介](https://www.jianshu.com/p/1368fa8fa21b) + +[项目管理快速入门2生命周期](https://www.jianshu.com/p/02f0a9706c74) + +[软件项目管理快速入门3项目成本管理和评估指南](https://www.jianshu.com/p/2ba973970aef) + +[项目管理快速入门4项目风险分析与管理](https://www.jianshu.com/p/2a72bc04e897) + +[项目管理快速入门5六西格玛(Six Sigma)认证指南](https://www.jianshu.com/p/5bf3e60103e7) + +[项目管理快速入门6项目管理方法教程](https://www.jianshu.com/p/fa2ad48763b7) + +[项目管理快速入门7-40个最佳项目管理工具[2019年7月名单]](https://www.jianshu.com/p/6f743352f316) + +[测试管理快速入门1简介](https://www.jianshu.com/p/723234985818) + +[测试管理快速入门2阶段](https://www.jianshu.com/p/fab7b12176b1) + +[测试管理快速入门3风险分析](https://www.jianshu.com/p/1dd0ca582eb0) + +[测试管理快速入门4评估技术](https://www.jianshu.com/p/c24a4f89fa4e) + +[测试管理快速入门5团队组建](https://www.jianshu.com/p/10fee24993f9) + +[测试管理快速入门6测试计划](https://www.jianshu.com/p/ae9218c816be) + +[测试管理快速入门7测试监控和测试控制](https://www.jianshu.com/p/b2212e571376) + +[测试管理快速入门8问题管理](https://www.jianshu.com/p/78a471ce4d82) + +[软件测试管理快速入门9测试报告](https://www.jianshu.com/p/fb082c69a375) + +[测试管理快速入门10 Software Quality Assurance(SQA):计划,审计和审核](https://www.jianshu.com/p/8ac3ccee1c12) + +[软件测试管理快速入门11-BUG管理](https://www.jianshu.com/p/0fe637d4b3f7) + +[软件测试管理快速入门12-使用PDCA模型的测试过程改进(TPI Test Process Improvement)](https://www.jianshu.com/p/3333287aa9f2) + +[软件测试管理快速入门13-如何选择自动化测试工具](https://www.jianshu.com/p/75fda0983b09) + +[软件测试管理快速入门14-人力管理技巧](https://www.jianshu.com/p/18297fb2cf29) + +[性能测试工具Locust和JMeter比较](https://www.jianshu.com/p/dd0fcfdfa561) + +[JMeter性能测试工具快速入门教程1简介](https://www.jianshu.com/p/b346e1d49d94) + +[JMeter性能测试工具快速入门教程3线程组,采样器,监听器,配置](https://www.jianshu.com/p/1137a98fd9c2) + +[JMeter性能测试工具快速入门教程4测试计划和工作台](https://www.jianshu.com/p/b40a2f5b037a) + +[JMeter性能测试工具快速入门教程5性能和负载测试](https://www.jianshu.com/p/bd0c7c4d53c8) + +[JMeter性能测试工具快速入门教程6定时器](https://www.jianshu.com/p/40527adb7091) + +[JMeter性能测试工具快速入门教程7断言](https://www.jianshu.com/p/7f84fe378ad7) + +[JMeter性能测试工具快速入门教程8逻辑控制器](https://www.jianshu.com/p/7e560961de48) + +[JMeter性能测试工具快速入门教程9处理器](https://www.jianshu.com/p/c65bec4cc972) + +[ETL测试工具简介](https://www.jianshu.com/p/23927950732d) + +[商业智能数据测试简介](https://www.jianshu.com/p/3168143d74b3) + +[数据测试指南](https://www.jianshu.com/p/601a86fa85c1) + +[数据测试教程](https://www.jianshu.com/p/380d0aad674e) + +[ETL测试数据仓库测试教程](https://www.jianshu.com/p/a05130a36016) + +[自动化测试框架工具pytest教程](https://www.jianshu.com/p/e8fa41d69a27) + +[自动化测试框架工具pytest教程1-快速入门](https://www.jianshu.com/p/cf644c704e6b) + +[自动化测试框架工具pytest教程2-测试函数](https://www.jianshu.com/p/4e512f8f8030) + +[pytest插件](https://www.jianshu.com/p/929894426a48) + +[pytest中文手册1安装和快速入门](https://www.jianshu.com/p/d88c978545b2) + +[网络和带宽分析的最佳数据包嗅探器工具](https://www.jianshu.com/p/985bf014f069) + +[Hive SQL单元测试介绍](https://www.jianshu.com/p/2c7631ab6cea) + +[移动应用测试1测试用例和测试场景](https://www.jianshu.com/p/2c4c17890c70) + +[移动应用测试-质量属性](https://www.jianshu.com/p/74b47e8028ca) + +[移动应用测试-环境和工具](https://www.jianshu.com/p/5703e8dd9af1) + +[移动应用测试计划](https://www.jianshu.com/p/5a741d0e8f5d) + +[测试工具: 2019年测试自动化最佳Python框架](https://www.jianshu.com/p/3d4c391f5dd7) + +[渗透测试工具简介1渗透测试简介](https://www.jianshu.com/p/58dafa47301f) + +[渗透测试工具简介2入侵工具](https://www.jianshu.com/p/25875c37d87e) + +[渗透测试工具简介11 SQL 注入](https://www.jianshu.com/p/fd688fd68269) + +[Google增强现实测试自动化工具介绍](https://www.jianshu.com/p/5dc89bac40a7) + +[selenium自动化测试工具python笔试面试项目实战5键盘操作](https://www.jianshu.com/p/a893ef19916a) + +[selenium自动化测试工具python笔试面试项目实战6 javascript操作](https://www.jianshu.com/p/62afcd9ec11d) + +[python测试工具开发面试宝典3web抓取](https://www.jianshu.com/p/1dd15283add9) + +[谷歌如何测试软件1Google软件测试介绍](https://www.jianshu.com/p/335e99d31795) + +[Google软件测试介绍2章软件测试开发工程师](https://www.jianshu.com/p/0bd9ac92cd92) + +[Google软件测试介绍3测试工程师](https://www.jianshu.com/p/5ecf85f236d8) + +[python web渗透测试工具学习1:Web应用渗透测试简介](https://www.jianshu.com/p/0b09e1019eea) + +[python web渗透测试工具学习2Web应用交互1HTTP基础](https://www.jianshu.com/p/2562338eda66) + +[使用python3和flask构建RESTful API(接口测试服务与mockserver工具)](https://www.jianshu.com/p/8ddfdabe6791) + +[flask工具构建自动化测试平台1-hello](https://www.jianshu.com/p/1370dffa7116) + +[flask工具构建自动化测试平台2-开始头条项目](https://www.jianshu.com/p/36fd2e377a1a) + +[flask构建自动化测试平台3-模板](https://www.jianshu.com/p/06753ff70337) + +[flask构建自动化测试平台4-用户输入](https://www.jianshu.com/p/2afefce4550b) + +[flask构建自动化测试平台5-提高用户体验](https://www.jianshu.com/p/a4e14a9d733a) + +[flask构建自动化测试平台6-交互式犯罪地图](https://www.jianshu.com/p/6ace93689e9a) + +[flask构建自动化测试平台7-添加google地图](https://www.jianshu.com/p/9a75e2a4256a) + +[flask工具构建自动化测试平台8-验证用户输入](https://www.jianshu.com/p/a1d0e10e1a88) + +[flask工具构建自动化测试平台9-点餐应用](https://www.jianshu.com/p/42c647220da1) + +[性能测试工具开发基础:python库介绍-multiprocessing:多进程](https://www.jianshu.com/p/5d5b6225edbc) + +[MD5值重复文件多进程检查工具check_md5.py - 性能测试工具开发](https://www.jianshu.com/p/ffa8e2da29bd) + +[可爱的python测试开发库及项目(python测试开发工具库汇总)](https://www.jianshu.com/p/ea6f7fb69501) + +[软件测试专家工具包1web测试](https://www.jianshu.com/p/be4da27b3260) + +[软件测试专家工具包2性能测试](https://www.jianshu.com/p/ab75be06ebb7) + +[软件测试专家工具包3移动端](https://www.jianshu.com/p/35262e4cc65a) + + + + From 5c7c171d5bd3b056ea63bd7901422eed5b590c7c Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 5 Apr 2020 11:47:54 +0800 Subject: [PATCH 084/122] Add Build A Career in Data Science.pdf in books.md --- books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/books.md b/books.md index 72ad07b..a6bdf9d 100755 --- a/books.md +++ b/books.md @@ -536,6 +536,8 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 ### 数据分析 +[数据科学家职业生涯 Build A Career in Data Science.pdf](https://t00y.com/file/18113597-435268927) + #### pandas [Python数据挖掘入门与实践(中文完整版) - 2017.pdf](https://u18113597.pipipan.com/fs/18113597-304379622) From 10df5538edd176103bfc614b6d70616717091c89 Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 5 Apr 2020 15:52:37 +0800 Subject: [PATCH 085/122] Add Managing Your Outsourced IT Services Provider How to Unleas.pdf --- books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/books.md b/books.md index a6bdf9d..09acda2 100755 --- a/books.md +++ b/books.md @@ -1302,7 +1302,9 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 [书籍:流程的永恒之道](https://www.jianshu.com/p/435cf0fd9ce9) - [下载](https://itbooks.pipipan.com/fs/18113597-384173739) +## 其他 +[管理外包IT服务 Managing Your Outsourced IT Services Provider How to Unleas.pdf](https://t00y.com/file/18113597-435268934) * 技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728 From f3e7ef6715b2a25d9fa95a878e122a82f2b385c0 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 6 Apr 2020 10:45:39 +0800 Subject: [PATCH 086/122] Add deepl in address --- addesss.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addesss.md b/addesss.md index a312a07..962aa3e 100644 --- a/addesss.md +++ b/addesss.md @@ -7,7 +7,7 @@ | 类别 | 名称 | 名称 | 名称 | 名称 | 名称 | 名称 | --- | --- | --- | --- | --- | --- | --- | -**常用** | [oscobo](https://www.oscobo.com/) | [谷歌](https://www.google.com.hk/?gws_rd=ssl) |[谷歌翻译](http://translate.google.cn/?hl=zh-CN) |[360百科](https://baike.so.com/doc/1790119-1892991.html) | [维基中文](https://zh.wikipedia.org/wiki/Python) +**常用** | [oscobo](https://www.oscobo.com/) | [谷歌](https://www.google.com.hk/?gws_rd=ssl) |[谷歌翻译](http://translate.google.cn/?hl=zh-CN) |[360百科](https://baike.so.com/doc/1790119-1892991.html) | [维基中文](https://zh.wikipedia.org/wiki/Python) | [deepl](https://www.deepl.com/translator) |-| [必应](https://cn.bing.com/search?q=site%3Achina-testing.github.io&qs=n&form=QBLH&sp=-1&pq=site%3Achina-testing.github.io&sc=0-26&sk=&cvid=CF01D3E7586D46EDA7A260FAD61344CD) | [代码搜索](https://searchcode.com/)| [有道词典](http://dict.youdao.com/) | [百度百科](https://baike.baidu.com/item/Python/407313) | [overflow](http://stackoverflow.com/) | |- | [百度](https://www.baidu.com/) |[so](https://www.so.com/s?ie=utf-8&fr=none&src=360sou_newhome&q=site%3Achina-testing.github.io)|[bing翻译](https://cn.bing.com/Translator) |[知乎](https://www.zhihu.com/) | [维基英文](https://en.wikipedia.org/wiki/Python_(programming_language)) | [空气污染](http://aqicn.org/map/hk/#@g/24.0686/113.7764/7z) | |**技术**| [新浪科技](https://tech.sina.com.cn/) | [guru99](https://www.guru99.com/) |[vogella](https://www.vogella.com/tutorials/) | From 305d5f0f2b98ad10b91163c57e1f53cb85eae659 Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 9 Apr 2020 13:58:26 +0800 Subject: [PATCH 087/122] =?UTF-8?q?zhongyao=20books=20=20=E6=9A=82?= =?UTF-8?q?=E5=81=9C=E5=85=8D=E8=B4=B9=E4=B8=8B=E8=BD=BD=20=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E8=81=94=E7=B3=BB=E5=BE=AE=E4=BF=A1=20pythontesting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/society_books.md b/society_books.md index 3333eda..81657bd 100755 --- a/society_books.md +++ b/society_books.md @@ -73,19 +73,19 @@ [中医诊断学 中医药出版社 十版 大学教材.pdf](https://itbooks.pipipan.com/fs/18113597-309192907) -[方剂学 中医药出版社 十版 大学教材.pdf](https://itbooks.pipipan.com/fs/18113597-308220076) +方剂学 中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting -[中医内科学-中医药出版社 十版 大学教材.pdf](https://itbooks.pipipan.com/fs/18113597-308196549) +中医内科学-中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting -[中药学-中医药出版社 十版 大学教材.pdf](https://itbooks.pipipan.com/fs/18113597-308188125) +中药学-中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting -[推拿学-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-410967247) +推拿学-中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting [中医基础理论-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-410967245) [新编中医儿科学.epub](https://sn9.us/file/18113597-410971369) -[中医气功学 第十版.pdf](https://sn9.us/file/18113597-425882095) +中医气功学 第十版.pdf 暂停免费下载 购买联系微信 pythontesting ### 中医经典 From 064a87ad46745942595bda639d6d483bdbedb6fc Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 10 Apr 2020 23:11:20 +0800 Subject: [PATCH 088/122] modify zhongyi books --- society_books.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/society_books.md b/society_books.md index 81657bd..a772a14 100755 --- a/society_books.md +++ b/society_books.md @@ -70,22 +70,20 @@ ### 中医教材 +购买联系微信 pythontesting [中医诊断学 中医药出版社 十版 大学教材.pdf](https://itbooks.pipipan.com/fs/18113597-309192907) 方剂学 中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting -中医内科学-中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting - -中药学-中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting - -推拿学-中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting +中医内科学-中医药出版社 十版 大学教材.pdf 中药学-中医药出版社 十版 大学教材.pdf 推拿学-中医药出版社 十版 大学教材.pdf 中医气功学 第十版.pdf [中医基础理论-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-410967245) [新编中医儿科学.epub](https://sn9.us/file/18113597-410971369) -中医气功学 第十版.pdf 暂停免费下载 购买联系微信 pythontesting +中西医结合外科学 中西医结合妇产科学 中西医结合内科学 经络腧穴学 实验针灸学 伤寒论选读 中医妇科学 针灸医籍选读 刺法灸法学 针灸学 全国中医药行业高等教育"十三五"规划教材,全国高等中医药院校规划教材) + ### 中医经典 From d5ae638b89a46742d8ef76c4d94a2bbe40accffb Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 12 Apr 2020 11:42:30 +0800 Subject: [PATCH 089/122] =?UTF-8?q?Add=20=E4=B8=AD=E5=9B=BD=E7=BD=97?= =?UTF-8?q?=E7=9B=98=E8=AF=A6=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/society_books.md b/society_books.md index a772a14..c11161b 100755 --- a/society_books.md +++ b/society_books.md @@ -76,7 +76,7 @@ 方剂学 中医药出版社 十版 大学教材.pdf 暂停免费下载 购买联系微信 pythontesting -中医内科学-中医药出版社 十版 大学教材.pdf 中药学-中医药出版社 十版 大学教材.pdf 推拿学-中医药出版社 十版 大学教材.pdf 中医气功学 第十版.pdf +中医内科学-中医药出版社 十版 大学教材.pdf 中药学-中医药出版社 十版 大学教材.pdf 推拿学-中医药出版社 十版 大学教材.pdf 中医气功学 第十版.pdf 中国医学史 [中医基础理论-中医药出版社 十版 大学教材.pdf](https://sn9.us/file/18113597-410967245) @@ -381,6 +381,9 @@ ## 地理 +[中国罗盘详解 - 2014.pdf](https://t00y.com/file/18113597-371261903) 亚马逊 4星 83评 + +[中国罗盘通俗解读 - 2011.pdf](https://t00y.com/file/18113597-371261792) 亚马逊 4星 83评 [走遍中国(珍藏版) (图说天下·国家地理系列) \- 2012.pdf](https://itbooks.pipipan.com/fs/18113597-316902379) 亚马逊 4星 83评 From 4e21c05eaac39287ee3f6f4dac42a6a7da66d726 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 29 Apr 2020 20:59:12 +0800 Subject: [PATCH 090/122] Add Python One-Liners - Christian Mayer.pdf --- README.md | 2 +- books.md | 2 ++ society_books.md | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d9b3422..fa50725 100755 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ tools目录: * [python测试开发自动化测试数据分析人工智能自学每周一练](https://china-testing.github.io/python_weeks.html) * [软件自动化测试初学者忠告](https://china-testing.github.io/testing_automation_tips.html) -* 今日头条极速版看新闻可以赚钱,邀请码DBG8ADUK 抖音极速版:889494501 火山极速版:277335131 +* 今日头条极速版看新闻可以赚钱,邀请码DBG78MUK 或 DBG8ADUK 抖音极速版:889494501 火山极速版:277335131 * 技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728 diff --git a/books.md b/books.md index 09acda2..d8daa89 100755 --- a/books.md +++ b/books.md @@ -450,6 +450,8 @@ Daniel Arbuckle's Mastering Python - 2017.pdf ### python performance +[python高手的单行绝杀 Python One-Liners - Christian Mayer.pdf](https://t00y.com/file/18113597-440390309) + [Learning Cython Programming(2nd).pdf](https://u18113597.pipipan.com/fs/18113597-304585876) diff --git a/society_books.md b/society_books.md index c11161b..ed1c3ef 100755 --- a/society_books.md +++ b/society_books.md @@ -381,9 +381,9 @@ ## 地理 -[中国罗盘详解 - 2014.pdf](https://t00y.com/file/18113597-371261903) 亚马逊 4星 83评 +[中国罗盘详解 - 2014.pdf](https://t00y.com/file/18113597-371261903) -[中国罗盘通俗解读 - 2011.pdf](https://t00y.com/file/18113597-371261792) 亚马逊 4星 83评 +[中国罗盘通俗解读 - 2011.pdf](https://t00y.com/file/18113597-371261792) [走遍中国(珍藏版) (图说天下·国家地理系列) \- 2012.pdf](https://itbooks.pipipan.com/fs/18113597-316902379) 亚马逊 4星 83评 From 9a5f45a2f33c32a1f051749017e3e870ddbb18ce Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 3 May 2020 20:18:39 +0800 Subject: [PATCH 091/122] Add Natural Language Processing with Python and spaCy.pdf --- books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/books.md b/books.md index d8daa89..ac6e5fb 100755 --- a/books.md +++ b/books.md @@ -406,6 +406,8 @@ [书籍:python自然语言处理(PyTorch) Natural Language Processing with PyTorch - 2019](https://www.jianshu.com/p/001938f92fdb) +[书籍:使用Python和spaCy进行自然语言处理 Natural Language Processing with Python and spaCy.pdf](https://t00y.com/file/18113597-441459686) + [书籍:python游戏编码 Coding Games in Python - 2018](https://www.jianshu.com/p/e9fb0185e688) [书籍:python图像处理 Image Operators - Image Processing in Python - 2019](https://www.jianshu.com/p/baf6d12be2d3) From 5371234c91ee601c172b70d791d9e26651fbdbe0 Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 29 Jun 2020 10:31:09 +0800 Subject: [PATCH 092/122] =?UTF-8?q?Add=20Django=E5=8D=95=E6=9C=BA=E5=BA=94?= =?UTF-8?q?=E7=94=A8=20Django=20Standalone=20Apps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- books.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/books.md b/books.md index ac6e5fb..83303a6 100755 --- a/books.md +++ b/books.md @@ -519,6 +519,8 @@ Daniel Arbuckle's Mastering Python - 2017.pdf #### Django +* [ Django单机应用 Django Standalone Apps - Ben Lopatin.pdf ](https://545c.com/file/18113597-451087719) + * [Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程(第2版)- 2018.pdf](https://itbooks.pipipan.com/fs/18113597-315514896) * [Beginning Django-2017.pdf](http://file.allitebooks.com/20171030/Beginning%20Django.pdf) * [Beginning Django CMS-2015.pdf](http://file.allitebooks.com/20160130/Beginning%20Django%20CMS.pdf) @@ -544,6 +546,9 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 #### pandas + +[思考pandas Thinking in Pandas.pdf](https://545c.com/file/18113597-451087733) + [Python数据挖掘入门与实践(中文完整版) - 2017.pdf](https://u18113597.pipipan.com/fs/18113597-304379622) From 0c3fd3395ab14890db294ec8ba2caab481b98f8f Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 5 Aug 2020 18:33:43 +0800 Subject: [PATCH 093/122] =?UTF-8?q?Add=20sql=E5=BF=85=E7=9F=A5=E5=BF=85?= =?UTF-8?q?=E4=BC=9A=E7=AC=AC4=E7=89=88=5F.pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- books.md | 5 +++ other/wing7_crack.py | 73 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 other/wing7_crack.py diff --git a/books.md b/books.md index 83303a6..0c7205a 100755 --- a/books.md +++ b/books.md @@ -1048,8 +1048,13 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 ## 数据库 +* [Sams Teach Yourself SQL in 10 Minutes a Day 5th - Ben Forta_.pdf](https://545c.com/file/18113597-456207575) + +* [ sql必知必会第4版_.pdf ](https://545c.com/file/18113597-456205729) + ### PostgreSQL + * [PostgreSQL Cookbook-2015.pdf](http://file.allitebooks.com/20150908/PostgreSQL%20Cookbook.pdf) * [Learning Heroku Postgres-2015.pdf](http://file.allitebooks.com/20151124/Learning%20Heroku%20Postgres.pdf) * [PostgreSQL 9 High Availability Cookbook-2014.pdf](http://file.allitebooks.com/20150915/PostgreSQL%209%20High%20Availability%20Cookbook.pdf) diff --git a/other/wing7_crack.py b/other/wing7_crack.py new file mode 100644 index 0000000..294f0f8 --- /dev/null +++ b/other/wing7_crack.py @@ -0,0 +1,73 @@ +import string +import random +import hashlib + +BASE16 = '0123456789ABCDEF' +BASE30 = '123456789ABCDEFGHJKLMNPQRTVWXY' + + +def randomstring(size=20, chars=string.ascii_uppercase + string.digits): + return ''.join((random.choice(chars) for _ in range(size))) + + +def BaseConvert(number, fromdigits, todigits, ignore_negative=True): + if not ignore_negative and str(number)[0] == '-': + number = str(number)[1:] + neg = 1 + else: + neg = 0 + x = 0 + for digit in str(number): + x = x * len(fromdigits) + fromdigits.index(digit) + + res = '' + while x > 0: + digit = x % len(todigits) + res = todigits[digit] + res + x //= len(todigits) + + if neg: + res = '-' + res + return res + + + +def AddHyphens(code): + return code[:5] + '-' + code[5:10] + '-' + code[10:15] + '-' + code[15:] + + +def SHAToBase30(digest): + tdigest = ''.join([c for i, c in enumerate(digest) if i // 2 * 2 == i]) + result = BaseConvert(tdigest, BASE16, BASE30) + while len(result) < 17: + result = '1' + result + return result + + +def loop(ecx, lichash): + part = 0 + for c in lichash: + part = ecx * part + ord(c) & 1048575 + return part + +rng = AddHyphens('CN' + randomstring(18, '123456789ABCDEFGHJKLMNPQRTVWXY')) +print('License id: ' + rng) +act30 = input('Enter request code:') +lichash = act30 +hasher = hashlib.sha1() +act30 = act30.encode() +hasher.update(act30) +rng = rng.encode() +hasher.update(rng) +lichash = AddHyphens(lichash[:3] + SHAToBase30(hasher.hexdigest().upper())) +part5 = format(loop(221, lichash), '05x') + format(loop(13, lichash), '05x') + format(loop(93, lichash), '05x') + format(loop(27, lichash), '05x') + + +part5 = BaseConvert(part5.upper(), BASE16, BASE30) +while len(part5) < 17: + part5 = '1' + part5 + +part5 = 'AXX' + part5 +print('Activation code: ' + AddHyphens(part5)) +print('..........................................') +input() From 2823e18c7d80814d0c1e65878a3290664608c6d3 Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 7 Aug 2020 16:58:55 +0800 Subject: [PATCH 094/122] Modify readme --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index fa50725..8ddd6d5 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ 人脸测试的一些小脚本和教程。 +- [python测试开发练习](https://github.com/china-testing/python-testing-examples) + bazi/bazi.py:使用python排八字 [文档地址](https://china-testing.github.io/bazi.html) flask/api_demo: 使用python3和flask构建RESTful API(接口测试服务) 的源码 [文档地址](http://t.cn/RQzD0uY) @@ -39,12 +41,6 @@ tools目录: * split_raw.py 切分raw图为ir,depth图 - - * [python3快速入门教程1 turtle绘图-1开始](https://china-testing.github.io/python3_crash1.html) - * [接口自动化性能测试线上培训大纲](https://china-testing.github.io/testing_training.html) - * [python测试开发自动化测试数据分析人工智能自学每周一练](https://china-testing.github.io/python_weeks.html) - * [软件自动化测试初学者忠告](https://china-testing.github.io/testing_automation_tips.html) - * 今日头条极速版看新闻可以赚钱,邀请码DBG78MUK 或 DBG8ADUK 抖音极速版:889494501 火山极速版:277335131 * 技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728 From 9d9969dd466c7ab561a0ce9537295f23155eed5f Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 25 Oct 2020 16:35:11 +0800 Subject: [PATCH 095/122] =?UTF-8?q?Add=20=E8=AE=B0=E5=BF=86=E5=8A=9B=20boo?= =?UTF-8?q?ks=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 7 +++++++ tips.md | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/society_books.md b/society_books.md index ed1c3ef..508d49a 100755 --- a/society_books.md +++ b/society_books.md @@ -454,6 +454,13 @@ [囚徒健身: 用失传的技艺练就强大的生存实力.pdf](https://t00y.com/file/18113597-428517687) +## 记忆力 + +[你不是记性差,只是没找对方法.pdf](https://545c.com/file/18113597-468112049) + +[间谍学校:像间谍一样记忆.pdf](https://545c.com/file/18113597-468112047) + +[最强大脑:人人学得会的记忆力训练术.pdf](https://545c.com/file/18113597-468112027) * [python3快速入门教程1 turtle绘图-1开始](https://china-testing.github.io/python3_crash1.html) * [接口自动化性能测试线上培训大纲](https://china-testing.github.io/testing_training.html) diff --git a/tips.md b/tips.md index da27759..538013d 100755 --- a/tips.md +++ b/tips.md @@ -18,7 +18,7 @@ https://stackoverflow.com/questions/13716658/how-to-delete-all-commit-history-in https://github.com/ekalinin/github-markdown-toc -/home/andrew/code/gh-md-toc ~/code/python-api-tesing/books.md +/home/andrew/code/github-markdown-toc /home/andrew/code/python-testing-examples/README.md ## pelican.server From d107f75cea4581c8de080a700c1ebdc5a5fe4496 Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 25 Oct 2020 16:39:09 +0800 Subject: [PATCH 096/122] =?UTF-8?q?Add=20=E8=AE=B0=E5=BF=86=E5=8A=9B=20boo?= =?UTF-8?q?ks=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/society_books.md b/society_books.md index 508d49a..bf35644 100755 --- a/society_books.md +++ b/society_books.md @@ -21,7 +21,8 @@ * [国学](#国学) * [地理](#地理) * [书法](#书法) - * [励志](#励志) + * [励志](#励志) + * [记忆力](#记忆力) # 经典软件 From 41999e9f2f6a82084484148de664151beb7e6bae Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 11 Nov 2020 21:45:33 +0800 Subject: [PATCH 097/122] Add anxingfa --- society_books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/society_books.md b/society_books.md index bf35644..6c6338d 100755 --- a/society_books.md +++ b/society_books.md @@ -379,6 +379,8 @@ [道家与性文化.pdf](https://sn9.us/file/18113597-426835451) +[安星法及推断实例-2013.pdf](https://474b.com/file/18113597-373580489) + ## 地理 From 0d4268d1750cea614141cebbb26e5c9dd622c70b Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 12 Nov 2020 20:18:44 +0800 Subject: [PATCH 098/122] =?UTF-8?q?Add=20=E7=B4=AB=E5=BE=AE=E6=96=97?= =?UTF-8?q?=E6=95=B0=E8=AE=B2=E4=B9=89-2013.pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- society_books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/society_books.md b/society_books.md index 6c6338d..f2dadc2 100755 --- a/society_books.md +++ b/society_books.md @@ -381,6 +381,8 @@ [安星法及推断实例-2013.pdf](https://474b.com/file/18113597-373580489) +[紫微斗数讲义-2013.pdf](https://545c.com/file/18113597-470814827) + ## 地理 From efaf4e37e1d6a68295bdc0ef436612ea341cd73b Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 6 Dec 2020 23:17:54 +0800 Subject: [PATCH 099/122] Add egnlish books! --- society_books.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/society_books.md b/society_books.md index f2dadc2..7335ecc 100755 --- a/society_books.md +++ b/society_books.md @@ -383,6 +383,13 @@ [紫微斗数讲义-2013.pdf](https://545c.com/file/18113597-470814827) +[万年历- 2013.pdf](https://itbooks.pipipan.com/fs/18113597-373452308) + +[中华万年历全书(超值版) (家庭珍藏经典畅销书系)-2012.pdf](https://itbooks.pipipan.com/fs/18113597-373454963) + +[中华民俗万年历-2007.pdf](https://itbooks.pipipan.com/fs/18113597-373452341) + +[新编实用万年历(1901-2100年)(第2版) - 2011.pdf](https://itbooks.pipipan.com/fs/18113597-373452337) ## 地理 From efe4b5abf348bd5cc8a3a42c9f277a7bcff1e20b Mon Sep 17 00:00:00 2001 From: china-testing Date: Sun, 6 Dec 2020 23:20:01 +0800 Subject: [PATCH 100/122] Add english books! --- society_books.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/society_books.md b/society_books.md index 7335ecc..4029322 100755 --- a/society_books.md +++ b/society_books.md @@ -22,7 +22,8 @@ * [地理](#地理) * [书法](#书法) * [励志](#励志) - * [记忆力](#记忆力) + * [记忆力](#记忆力) + * [英语](#英语) # 经典软件 @@ -474,6 +475,16 @@ [最强大脑:人人学得会的记忆力训练术.pdf](https://545c.com/file/18113597-468112027) +## 英语 + +- [英语词根与单词的说文解字(修订版).pdf](https://545c.com/file/18113597-474817876) +- [把你的英语用起来.pdf](https://545c.com/file/18113597-474817868) +- [Word Smart - Princeton Review.pdf](https://545c.com/file/18113597-474817846) +- [On Writing Well, 30th Anniversary Edition_ - Zinsser, William.pdf]( https://545c.com/file/18113597-474817838) +- [How to Speak and Write Correctly (Mian Fei - Devlin,Joseph.pdf](https://545c.com/file/18113597-474817836) +- [1368个单词就够了.pdf](https://545c.com/file/18113597-474817833) +- [Word Power Made Easy_ The Complete Handboo - Lewis, Norman.pdf]( https://545c.com/file/18113597-474817824) + * [python3快速入门教程1 turtle绘图-1开始](https://china-testing.github.io/python3_crash1.html) * [接口自动化性能测试线上培训大纲](https://china-testing.github.io/testing_training.html) * [python测试开发自动化测试数据分析人工智能自学每周一练](https://china-testing.github.io/python_weeks.html) From 1e9dd9a0efa5aaf82d229e85e5f80970d69613d5 Mon Sep 17 00:00:00 2001 From: china-testing Date: Tue, 15 Dec 2020 17:56:06 +0800 Subject: [PATCH 101/122] add project books! --- articles.md | 57 ------------------------------------------------ books.md | 10 ++++++++- society_books.md | 18 +++++++++++++-- 3 files changed, 25 insertions(+), 60 deletions(-) diff --git a/articles.md b/articles.md index d179dd8..7c4b71f 100644 --- a/articles.md +++ b/articles.md @@ -151,36 +151,6 @@ [使用jython进行dubbo接口及ngrinder性能测试](https://www.jianshu.com/p/5e627f880f5f) -[软件工程快速入门教程1- SDLC软件开发生命周期](https://www.jianshu.com/p/cf04d4167448) - -[软件工程快速入门教程2- 瀑布模型](https://www.jianshu.com/p/7f2d7e2a3556) - -[软件工程快速入门教程3- 增量模型](https://www.jianshu.com/p/c55843620bbb) - -[软件工程快速入门教程4- 螺旋模型](https://www.jianshu.com/p/f4ac30828827) - -[软件工程快速入门教程5- RAD快速应用程序开发模型](https://www.jianshu.com/p/eeec6e92b23a) - -[软件工程快速入门教程6- 原型模型](https://www.jianshu.com/p/ef97b5c7c408) - -[软件工程快速入门教程7-能力成熟度模型CMM](https://www.jianshu.com/p/91f552e1fee4) - -[软件工程快速入门教程8- 多层架构](https://www.jianshu.com/p/0bceddf2477a) - -[软件工程快速入门教程9- 年薪70万的全栈需要什么技能?](https://www.jianshu.com/p/11d616d9f9f4) - -[软件工程快速入门教程10- 函数式编程](https://www.jianshu.com/p/226a8ccd86d2) - -[软件工程快速入门教程11 - MVC](https://www.jianshu.com/p/4106a3ba1c1b) - -[软件工程快速入门教程12 -2019年22个最佳软件开发工具](https://www.jianshu.com/p/e4c98c269feb) - -[软件工程快速入门教程13 -2019年Python、Java、c++等最佳代码覆盖工具](https://www.jianshu.com/p/3ceae82be197) - -[软件工程快速入门教程14 -2019年最佳代码评审及静态分析工具](https://www.jianshu.com/p/1740e66638d1) - -[软件工程快速入门教程15 -2019年最佳编程语言](https://www.jianshu.com/p/080b5fb559c0) - [敏捷测试开发快速入门教程1什么是敏捷方法论?](https://www.jianshu.com/p/4ed64c50089e) [敏捷测试开发快速入门教程2敏捷测试](https://www.jianshu.com/p/b489c2b3bab4) @@ -211,33 +181,6 @@ [项目管理快速入门7-40个最佳项目管理工具[2019年7月名单]](https://www.jianshu.com/p/6f743352f316) -[测试管理快速入门1简介](https://www.jianshu.com/p/723234985818) - -[测试管理快速入门2阶段](https://www.jianshu.com/p/fab7b12176b1) - -[测试管理快速入门3风险分析](https://www.jianshu.com/p/1dd0ca582eb0) - -[测试管理快速入门4评估技术](https://www.jianshu.com/p/c24a4f89fa4e) - -[测试管理快速入门5团队组建](https://www.jianshu.com/p/10fee24993f9) - -[测试管理快速入门6测试计划](https://www.jianshu.com/p/ae9218c816be) - -[测试管理快速入门7测试监控和测试控制](https://www.jianshu.com/p/b2212e571376) - -[测试管理快速入门8问题管理](https://www.jianshu.com/p/78a471ce4d82) - -[软件测试管理快速入门9测试报告](https://www.jianshu.com/p/fb082c69a375) - -[测试管理快速入门10 Software Quality Assurance(SQA):计划,审计和审核](https://www.jianshu.com/p/8ac3ccee1c12) - -[软件测试管理快速入门11-BUG管理](https://www.jianshu.com/p/0fe637d4b3f7) - -[软件测试管理快速入门12-使用PDCA模型的测试过程改进(TPI Test Process Improvement)](https://www.jianshu.com/p/3333287aa9f2) - -[软件测试管理快速入门13-如何选择自动化测试工具](https://www.jianshu.com/p/75fda0983b09) - -[软件测试管理快速入门14-人力管理技巧](https://www.jianshu.com/p/18297fb2cf29) [性能测试工具Locust和JMeter比较](https://www.jianshu.com/p/dd0fcfdfa561) diff --git a/books.md b/books.md index 0c7205a..af73edd 100755 --- a/books.md +++ b/books.md @@ -54,7 +54,8 @@ * [Scikit-learn](#scikit-learn) * [虚拟现实](#虚拟现实) * [大数据](#大数据) - * [架构](#架构) + * [架构](#架构) + * [产品与设计](#产品与设计) # 书籍 @@ -1324,3 +1325,10 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 * 道家技术-手相手诊看相中医等钉钉群21734177 qq群:391441566 184175668 338228106 看手相、面相、舌相、抽签、体质识别。服务费50元每人次起。请联系钉钉或者微信pythontesting +## 产品与设计 + +- [IDEO,设计改变一切.pdf]( https://545c.com/file/18113597-475805087) + +- [汪博士解读PMP考试(第5版).pdf]( https://545c.com/file/18113597-475805069) + +- [人工智能的未来 .pdf]( https://545c.com/file/18113597-475804854) diff --git a/society_books.md b/society_books.md index 4029322..78d94a2 100755 --- a/society_books.md +++ b/society_books.md @@ -23,8 +23,10 @@ * [书法](#书法) * [励志](#励志) * [记忆力](#记忆力) - * [英语](#英语) - + * [英语](#英语) + * [管理](#管理) + * [历史](#历史) + # 经典软件 [PDF编辑器 Adobe_Acrobat_Pro9_160215.rar](https://home.pipipan.com/#item-files/action-index/folder_id-29785334) @@ -490,6 +492,18 @@ * [python测试开发自动化测试数据分析人工智能自学每周一练](https://china-testing.github.io/python_weeks.html) * [软件自动化测试初学者忠告](https://china-testing.github.io/testing_automation_tips.html) +## 管理 + +- [领导的方与圆.pdf]( https://545c.com/file/18113597-475804805) + +- [结构思考力.pdf]( https://545c.com/file/18113597-475804774) + +- [领导力21法则.pdf]( https://545c.com/file/18113597-475804684) + +## 历史 + +- [未来简史.pdf]( https://545c.com/file/18113597-475804735) + * 技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728 From 6dfc96dfcc030eed8763b50ba432b23cba026b9a Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 26 Feb 2021 11:47:20 +0800 Subject: [PATCH 102/122] Add pytype --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8ddd6d5..f822ed8 100755 --- a/README.md +++ b/README.md @@ -639,6 +639,8 @@ django-viewlet因为github星级太少而未收录 * mypy :静态类型检查。[链接](https://github.com/python/mypy) --推荐 + * pytype :google的静态类型检查工具,不依赖注解。[链接](https://github.com/google/pytype) --推荐 + * pep8 :python风格检查。[链接](https://github.com/PyCQA/pycodestyle) --推荐 * prospector - 分析Python代码并输出有关错误,潜在问题,违反常规和复杂性的信息的工具。[prospector](https://github.com/PyCQA/prospector) From 89fc6020d331800394a50ac1581b9beac197488a Mon Sep 17 00:00:00 2001 From: china-testing Date: Mon, 29 Mar 2021 12:00:48 +0800 Subject: [PATCH 103/122] modify address --- addesss.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addesss.md b/addesss.md index 962aa3e..aa41c84 100644 --- a/addesss.md +++ b/addesss.md @@ -23,9 +23,9 @@ | 购物 | [亚马逊](https://www.amazon.cn/) | [天猫](https://www.tmall.com/) | [淘宝](https://china-testing.github.io/www.taobao.com) | [互动出版](http://www.china-pub.com/) | | | 博客 | [郑永年](http://www.caogen.com/blog/index.aspx?ID=66) | | 书籍 | [allitebooks](http://www.allitebooks.com/) | [archive](https://archive.org/details/texts) | [DigiLibraries](http://digilibraries.com/) | [smtebooks](https://smtebooks.com/) | -| 书籍 | [rufengso](http://www.rufengso.net/) | [finelybook](http://finelybook.com/) | [pansoso](http://www.pansoso.com/) | [wowebook](http://www.wowebook.org/) | [5kindle—68682019](https://5kindle.com/books/29452/) | [爱知客](http://www.izhike.cn/) | -| 工具 | [Git-Cheat-Sheet](https://github.com/flyhigher139/Git-Cheat-Sheet) | [web酷狗](http://web.kugou.com/) | [网站排行](http://top.chinaz.com/) | | -| 下载 | [youtube下载](https://china-testing.github.io/www.findyoutube.com) | [cnet下载](https://archive.org/details/texts) | [3322](http://www.3322.cc/sort/index.html) | [pc6](http://www.pc6.com/) | [西西软件](http://www.cr173.com/) +| 书籍 | [1lib](https://1lib.net/) | [finelybook](http://finelybook.com/) | [pansoso](http://www.pansoso.com/) | [wowebook](http://www.wowebook.org/) | [5kindle—68682019](https://5kindle.com/books/29452/) | [爱知客](http://www.izhike.cn/) | +| 工具 | [Git-Cheat-Sheet](https://github.com/flyhigher139/Git-Cheat-Sheet) | [web酷狗](http://web.kugou.com/) | [网站排行](http://top.chinaz.com/) | | [processon在线绘图](https://www.processon.com/) +| 下载 | [youtube下载](https://china-testing.github.io/www.findyoutube.com) | [cnet下载](https://archive.org/details/texts) | [3322](http://www.3322.cc/sort/index.html) | [pc6](http://www.pc6.com/) | [西西软件](http://www.cr173.com/) | [itmop](http://www.itmop.com/) | Linux | [rpmfind](http://fr2.rpmfind.net/) | [pkgs](https://pkgs.org/) | [RPM Search](http://rpm.pbone.net/) | | | [用药参考](http://drugs.medlive.cn/index.jsp) | [医案查询](http://www.gjmlzy.com:83/KBFmsSearch/Main/Index6) | [中药大全](http://zhongyao.m.supfree.net/) | [中医百科](https://zhongyibaike.com/wiki/%E5%9B%9B%E5%90%9B%E5%AD%90%E6%B1%A4) | | 中草药 | [植物图库](http://www.cses.tc.edu.tw/~tiwngien/picture%20datas/plant/oftensees.htm) | [福星花园](https://china-testing.github.io/bruce0342.blogspot.hk) | [认识植物](http://kplant.biodiv.tw/) | [中国植物志](http://frps.eflora.cn/) | [医学百科](http://www.a-hospital.com/w/%E7%99%BD%E8%83%8C%E5%8F%B6) | [中医书籍](http://www.zysj.com.cn/lilunshuji/index.html) From 1bc842524ad51f26b425dedaba7d4c3c194c864c Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 20 May 2021 17:49:25 +0800 Subject: [PATCH 104/122] Add books! --- books.md | 21 +++++++++++++++++++++ society_books.md | 28 +++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/books.md b/books.md index af73edd..9c30d32 100755 --- a/books.md +++ b/books.md @@ -60,9 +60,13 @@ # 书籍 +- [无人驾驶-2017 A4.4-33__ Driverless Intelligent Cars and the Road Ahead-2016 A4.5-35.pdf](https://545c.com/f/18113597-493950367-88dcc1) + ## c_c++ +- [Effective C An Introduction to Professional C Programming 2020 a4.5-103--.pdf](https://545c.com/f/18113597-496523838-567abf) + [A Tour of C++ 2nd - 2018.pdf](https://u18113597.pipipan.com/fs/18113597-303086103) @@ -451,6 +455,8 @@ Python基础教程(第3版) - 2017.pdf Daniel Arbuckle's Mastering Python - 2017.pdf + + ### python performance [python高手的单行绝杀 Python One-Liners - Christian Mayer.pdf](https://t00y.com/file/18113597-440390309) @@ -749,6 +755,10 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 ### 数据结构 +- [python代码精炼 Cracking Codes with Python -2018 Ae4.8-260__.pdf](https://545c.com/f/18113597-493934644-bf86c4) +- [算法图解-2017 A4.5-100__ Grokking Algorithms.pdf 中文版,python及其他语言描述 ](https://545c.com/f/18113597-493323025-446c7c) +- [40 Algorithms Every Programmer-2020 A4.3-102__.pdf 英文版,python及其他语言描述,2020年新书](https://545c.com/f/18113597-493323022-ee888a) + [算法图解 \- 2017.pdf](https://itbooks.pipipan.com/fs/18113597-321523035) [数据结构与算法__Python语言描述-2015.pdf](https://itbooks.pipipan.com/fs/18113597-321523014) @@ -904,6 +914,17 @@ Test-Driven Development with Python, 2nd Edition - 2017 qq群144081101共享 ### 软件测试 +- [Doing Agile Right-2020](https://545c.com/f/18113597-492993454-0bc945) +- [Agile Conversation-2020](ttps://545c.com/f/18113597-492993435-7c7cf0) + + +- [自动化测试点滴 Software Testing Automation Tips-2017.pdf](https://545c.com/f/18113597-493119549-84944e) +- [软件测试简介 A Friendly Introduction to Software Testing-2016 A4.3-38__.pdf](https://545c.com/f/18113597-493119547-c4b508) +- [使用python进行selenium测试 Python Testing with Selenium-2021 A5-2——.pdf](https://545c.com/f/18113597-493951160-f3f156) +- [python HTTP自动化测试: Python Requests Essentials -2015__.pdf](https://545c.com/f/18113597-493934407-38aec6) +- [python自动化菜单 第2版 Python Automation Cookbook -2020 2nd Ae4.3-34__.pdf](https://545c.com/f/18113597-493950719-7b6f40) +- [python测试:pytest Python Testing with pytest-2017 4.5 Ae4.5-92__.pdf](https://545c.com/f/18113597-493950522-3b3724) + [Pro Apache JMeter Web Application Performance Testing - 2017.pdf](https://www.jianshu.com/p/56125b1c91c0) - [下载](https://itbooks.pipipan.com/fs/18113597-384173739) [Performance Testing with JMeter 3 - Third Edition - 2017.pdf](https://www.jianshu.com/p/4c4ce0b8ba45) - [下载](https://itbooks.pipipan.com/fs/18113597-384173741) diff --git a/society_books.md b/society_books.md index 78d94a2..19c6967 100755 --- a/society_books.md +++ b/society_books.md @@ -24,7 +24,8 @@ * [励志](#励志) * [记忆力](#记忆力) * [英语](#英语) - * [管理](#管理) + * [管理](#管理) + * [心理学](#心理学) * [历史](#历史) # 经典软件 @@ -459,8 +460,23 @@ [敦煌古代书法艺术 \- 2008.pdf](https://itbooks.pipipan.com/fs/18113597-317105598) +- [寿康宝鉴-2016 A4.2-17——.pdf](https://545c.com/f/18113597-493930764-eb82d6) + +- [一个瑜伽行者的自传-2012 A3.9-228——.pdf](https://545c.com/f/18113597-493930215-f2fcd6) + ## 励志 +- [靠自己去成功 (刘墉作品集)-2013 A4.3-189--.pdf](https://545c.com/f/18113597-496517727-71d514) +- [人生百忌(1-3册套装) ((刘墉作品集)) - 2012 A4.3-375--.pdf](https://545c.com/f/18113597-496519559-9ebb51) +- [我不是教你诈(1-5合集)-2019 A4.6-86--.pdf](https://545c.com/f/18113597-496519564-d74e2c) +- [刘墉家书:少爷小姐要争气-2019 A4.3-72--.pdf](https://545c.com/f/18113597-496519569-317abd) +- [早起的奇迹那些能够在早晨800前改变人生的秘密-2019 A4.3-159__.pdf](https://545c.com/f/18113597-493930215-f2fcd6) +- [掌控习惯-2019 A4.5-85 Atomic Habits-2018 A4.8-37718 __.pdf](https://545c.com/f/18113597-493929642-23adf2) +- [100个基本-松浦弥太郎的人生信条-2019 A4.2-193__.pdf](https://545c.com/f/18113597-493324182-f359d2) +- [极简主义](https://545c.com/f/18113597-492984478-f0acad) +- [绝对自控](https://545c.com/f/18113597-492984470-14f089) +- [学会提问原书第11版-2019 A4.4-39__ Asking the Right Questions A Guide to Critical Thinking (11th Edition) A4.3-274.pdf](https://545c.com/f/18113597-493933193-3b05c2) + [终身成长-2017](https://sn9.us/file/18113597-410667858) [赋能:打造应对不确定性的敏捷团队.pdf](https://sn9.us/file/18113597-422109170) @@ -494,12 +510,22 @@ ## 管理 +- [领导梯队全面打造领导力驱动型公司(原书第2版)-2014 A4.2-95— The Leadership Pipeline-2011 A4.5-322.pdf](https://545c.com/f/18113597-496516486-b46184) +- [格鲁夫给经理人的第一课-2011 A4.4-129-- High Output Management-1995 A4.6-1849-.pdf ](https://545c.com/f/18113597-496517143-89db94) + - [领导的方与圆.pdf]( https://545c.com/file/18113597-475804805) - [结构思考力.pdf]( https://545c.com/file/18113597-475804774) - [领导力21法则.pdf]( https://545c.com/file/18113597-475804684) +## 心理学 + +- [幸福的勇气自我启发之父-2019 A4.7-96__.pdf](https://545c.com/f/18113597-493115784-298531) +- [心理学通识-2020 A4.4-30__.pdf](https://545c.com/f/18113597-493115773-11326a)\ +- [反障碍如何从障碍中获益](The Obstacle Is the Way-2014 A4.7-4883__.pdf](https://545c.com/f/18113597-493324178-ac0b88) +- [如何才能不焦虑献给一有风吹草动就好不淡定的你-2017 A4.5-56__ Take Control of Your Anxiety-2015 A4.7-22.pdf](https://545c.com/f/18113597-493933773-a80a25) + ## 历史 - [未来简史.pdf]( https://545c.com/file/18113597-475804735) From 60a1a0bf4b1fd85ed1259f4cfc90b94037b0ac28 Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 20 May 2021 18:03:15 +0800 Subject: [PATCH 105/122] Add books! --- books.md | 1 + society_books.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/books.md b/books.md index 9c30d32..aaa1614 100755 --- a/books.md +++ b/books.md @@ -6,6 +6,7 @@ 下面书籍如果出现无法下载,可以加qq群:630011153 144081101 6089740下载 +如需要密码访问,为2274 * [书籍](#书籍) * [c_c ](#c_c) diff --git a/society_books.md b/society_books.md index 19c6967..e2b1dbd 100755 --- a/society_books.md +++ b/society_books.md @@ -5,6 +5,8 @@ [急救书籍汇总下载-持续更新](https://www.jianshu.com/p/7f66e811b8d7) [偏方书籍汇总下载](https://www.jianshu.com/p/19f4a5805199) +如需要密码访问,为2274 + * [经典软件](#经典软件) * [社科书籍](#社科书籍) * [保健](#保健) From edd141d07b6ff53470aa357df9db7e1655d9cb4c Mon Sep 17 00:00:00 2001 From: china-testing Date: Fri, 16 Jul 2021 08:48:21 +0800 Subject: [PATCH 106/122] Add fastapi --- README.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index f822ed8..994d19f 100755 --- a/README.md +++ b/README.md @@ -1466,6 +1466,7 @@ Python版本和环境管理 ## 自然语言处理(Natural Language Processing) +* 汉字转拼音(pypinyin) [连接](https://github.com/mozillazg/python-pinyin) - 推荐 * NLTK:构建Python程序以处理人类语言数据的领先平台。[连接](https://github.com/nltk/nltk) - 推荐 * jieba:中文分词工具。[官网](https://github.com/fxsjy/jieba) - 推荐 * langid.py:独立的语言识别系统。[官网](https://github.com/saffsd/langid.py) @@ -1624,23 +1625,25 @@ Python版本和环境管理 *用于开发RESTful API的库。* * Django -    * [django-rest-framework](http://www.django-rest-framework.org/) - 功能强大且灵活的工具包,用于构建Web API。 --强烈推荐 -    * [django-tastypie](http://tastypieapi.org/) - 为Django应用程序创建美味的API。 --推荐 + * [django-rest-framework](http://www.django-rest-framework.org/) - 功能强大且灵活的工具包,用于构建Web API。 --强烈推荐 + * [django-tastypie](http://tastypieapi.org/) - 为Django应用程序创建美味的API。 --推荐 * Flask -    * [eve](https://github.com/pyeve/eve) - 由Flask,MongoDB提供支持的REST API框架和。 --推荐 -    * [flask-api-utils](https://github.com/marselester/flask-api-utils) - 负责Flask的API表示和身份验证。 -    * [flask-api](http://www.flaskapi.org/) - 适用于Flask的Browsable Web API。 -    * [flask-restful](https://github.com/flask-restful/flask-restful) - 快速构建适用于Flask的REST API。 --推荐 -    * [flask-restless](https://github.com/jfinkels/flask-restless) - 为使用SQLAlchemy定义的数据库模型生成RESTful API。 + * [eve](https://github.com/pyeve/eve) - 由Flask,MongoDB提供支持的REST API框架和。 --推荐 + * [flask-api-utils](https://github.com/marselester/flask-api-utils) - 负责Flask的API表示和身份验证。 + * [flask-api](http://www.flaskapi.org/) - 适用于Flask的Browsable Web API。 + * [flask-restful](https://github.com/flask-restful/flask-restful) - 快速构建适用于Flask的REST API。 --推荐 + * [flask-restless](https://github.com/jfinkels/flask-restless) - 为使用SQLAlchemy定义的数据库模型生成RESTful API。 *Pyramid -    * [cornice](https://github.com/Cornices/cornice) - Pyramid的RESTful框架。 + * [cornice](https://github.com/Cornices/cornice) - Pyramid的RESTful框架。 *其他 -    * [falcon](http://falconframework.org/) - 一个用于构建云API和Web应用后端的高性能框架。 -    * [hug](https://github.com/timothycrosley/hug) - 一个Python3框架,用于通过HTTP干净地公开API以及带有自动文档和验证的命令行。 --推荐 -    * [restless](https://github.com/toastdriven/restless) - 基于从Tastypie学到的经验教训的框架不可知的REST框架。 -    * [ripozo](https://github.com/vertical-knowledge/ripozo) - 快速创建REST / HATEOAS / Hypermedia API。 -    * [sandman](https://github.com/jeffknupp/sandman) - 现有数据库驱动系统的自动化REST API。 -    * [apistar](https://github.com/encode/apistar) - 为Python 3设计的智能Web API框架。--推荐 + * [falcon](http://falconframework.org/) - 一个用于构建云API和Web应用后端的高性能框架。 + * [hug](https://github.com/timothycrosley/hug) - 一个Python3框架,用于通过HTTP干净地公开API以及带有自动文档和验证的命令行。 --推荐 + * [fastapi](https://github.com/tiangolo/fastapi) - 现代的、快速的、基于标准Python类型提示的Web框架,用于用Python 3.6+构建API。 -- 强烈推荐 [中文快速入门](https://www.jianshu.com/p/4d8120af7c4c) https://www.jianshu.com/p/4d8120af7c4c + * [ripozo](https://github.com/vertical-knowledge/ripozo) - 快速创建REST / HATEOAS / Hypermedia API。 + * [sandman2](https://github.com/jeffknupp/sandman2) - 现有数据库驱动系统的自动化REST API。 + * [apistar](https://github.com/encode/apistar) - 为Python 3设计的智能Web API框架。--推荐 + * [vibora](https://github.com/vibora-io/vibora) - 快速、高效、异步的Web框架,灵感来自Flask。 + * [sanic](https://github.com/sanic-org/sanic) - 异步Python 3.7+ web server/framework | 快速构建及执行。  --推荐 ## RPC服务器(RPC Servers) From f99fb518c5b06228b7d8fab1e54f5f6f84426b9d Mon Sep 17 00:00:00 2001 From: china-testing <39585764+china-testing@users.noreply.github.com> Date: Wed, 3 Aug 2022 14:19:21 +0800 Subject: [PATCH 107/122] Update README.md --- README.md | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 994d19f..0bfd64a 100755 --- a/README.md +++ b/README.md @@ -1,21 +1,13 @@ -人脸测试的一些小脚本和教程。 - -- [python测试开发练习](https://github.com/china-testing/python-testing-examples) - -bazi/bazi.py:使用python排八字 [文档地址](https://china-testing.github.io/bazi.html) - -flask/api_demo: 使用python3和flask构建RESTful API(接口测试服务) 的源码 [文档地址](http://t.cn/RQzD0uY) - -book_scraper:一些爬取书籍的脚本。如果你知道有更好的免费书籍下载站点或下载脚本,请联系xurongzhong#126.com,谢谢 [文档地址](http://t.cn/RQzD0uY) - -book_scraper/requests_allitbooks.py 根据搜索词下载allitbooks的书籍,[文档](http://blog.sciencenet.cn/blog-2604609-1104696.html) - -wingide6 破解:other/wingide6_python3_crack.py * [国学 中医 历史等社科类书籍下载](https://github.com/china-testing/python-api-tesing/blob/master/society_books.md) * [电影 视频 下载](https://github.com/china-testing/python-api-tesing/blob/master/videos.md) * [IT类书籍 下载](https://github.com/china-testing/python-api-tesing/blob/master/books.md) + + + * [python八字排盘库](https://github.com/china-testing/bazi) + * 技术支持:看八字风水请联系钉钉、抖音或微信pythontesting + * 另有飞书、微信、钉钉、抖音等提供大量免费电子书共享。 tools目录: @@ -41,11 +33,7 @@ tools目录: * split_raw.py 切分raw图为ir,depth图 -* 今日头条极速版看新闻可以赚钱,邀请码DBG78MUK 或 DBG8ADUK 抖音极速版:889494501 火山极速版:277335131 - -* 技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728 - -* 道家技术-手相手诊看相中医等钉钉群21734177 qq群:391441566 184175668 338228106 看手相、面相、舌相、抽签、体质识别。服务费50元每人次起。请联系钉钉或者微信pythontesting +* 看八字风水请联系钉钉或者微信pythontesting Table of Contents ================= From 21851691edcaca1845e1c4bff26878b0ddfc5448 Mon Sep 17 00:00:00 2001 From: china-testing <39585764+china-testing@users.noreply.github.com> Date: Wed, 3 Aug 2022 14:21:18 +0800 Subject: [PATCH 108/122] Update README.md --- README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index 0bfd64a..2a65eb6 100755 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ * [python八字排盘库](https://github.com/china-testing/bazi) * 技术支持:看八字风水请联系钉钉、抖音或微信pythontesting - * 另有飞书、微信、钉钉、抖音等提供大量免费电子书共享。 + * 另有飞书、微信、钉钉、抖音等提供大量免费电子书共享。 八字培训等 tools目录: @@ -33,8 +33,6 @@ tools目录: * split_raw.py 切分raw图为ir,depth图 -* 看八字风水请联系钉钉或者微信pythontesting - Table of Contents ================= @@ -172,9 +170,6 @@ https://github.com/atinfo/awesome-test-automation https://westurner.github.io/wiki/awesome-python-testing -交流QQ群:python 测试开发自动化测试 144081101 Python数据分析pandas Excel 630011153 中医草药自学自救大数据 391441566 南方中医草药鉴别学习 184175668 中医草药湿热湿疹胃病 291184506 python高级人工智能视觉 6089740 - -wechat: pythontesting # 测试开发 From c6225c93c10921ebf8f9e171b9030f8bca60ddef Mon Sep 17 00:00:00 2001 From: china-testing <39585764+china-testing@users.noreply.github.com> Date: Wed, 23 Nov 2022 14:54:01 +0800 Subject: [PATCH 109/122] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加钉钉群 21745728 --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 2a65eb6..3fb4dcb 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ +python测试开发钉钉群:21745728,目前800多人,另有几千人的python测试开发微信群,可联系 钉钉或微信号 pythontesting 加群(备注:python)! * [国学 中医 历史等社科类书籍下载](https://github.com/china-testing/python-api-tesing/blob/master/society_books.md) * [电影 视频 下载](https://github.com/china-testing/python-api-tesing/blob/master/videos.md) @@ -2078,10 +2079,6 @@ Where to discover new Python libraries. ### 持续更新 -[接口自动化性能测试线上培训大纲](https://china-testing.github.io/testing_training.html) - -交流QQ群:python 测试开发自动化测试 144081101 python高级人工智能视觉 6089740 - wechat: pythontesting ## Websites From 424cbee836b095d575da98f0fbdba602b04c86fb Mon Sep 17 00:00:00 2001 From: china-testing <39585764+china-testing@users.noreply.github.com> Date: Wed, 23 Nov 2022 15:04:43 +0800 Subject: [PATCH 110/122] Update README.md Add Python-UIAutomation-for-Windows --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3fb4dcb..fc91630 100755 --- a/README.md +++ b/README.md @@ -221,7 +221,9 @@ https://westurner.github.io/wiki/awesome-python-testing * pywinauto - Windows UI自动化。 [链接](https://github.com/pywinauto/pywinauto/) - * SikuliX - 基于OpenCV的GUI测试框架,使用图像识别来定位与之间的项目,来自python 2.7的脚本,跨平台。[链接](https://github.com/RaiMan/SikuliX-2014) + * SikuliX - sikuli的稳定长期更新版本。[链接](https://github.com/RaiMan/SikuliX1) + + * Python-UIAutomation-for-Windows - uiautomation封装了微软UIAutomation API,支持自动化Win32,MFC,WPF,Modern UI(Metro UI), Qt, IE, Firefox等。[链接](https://github.com/yinkaisheng/Python-UIAutomation-for-Windows) 国产 ## UI测试 From 92b9dd40bb7331b3a703c2856399221e3894e1be Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 24 Nov 2022 20:06:29 +0800 Subject: [PATCH 111/122] modify practices/pillow/rotate.py --- practices/pillow/rotate.py | 3 +-- python3_libraries/pillow/demo.jpg | Bin 55833 -> 120149 bytes python3_libraries/pillow/demo.png | Bin 245188 -> 245188 bytes 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/practices/pillow/rotate.py b/practices/pillow/rotate.py index 59e0e4e..fecf09d 100644 --- a/practices/pillow/rotate.py +++ b/practices/pillow/rotate.py @@ -2,11 +2,10 @@ # -*- coding: utf-8 -*- # https://china-testing.github.io/pil1.html # https://github.com/china-testing/python-api-tesing/blob/master/practices/pillow/rotate.py -# 项目实战讨论QQ群630011153 144081101 # CreateDate: 2018-12-26 from PIL import Image -im = Image.open("qun.jpg") +im = Image.open("../../python3_libraries/pillow/demo.jpg") print(im.size) im.show() diff --git a/python3_libraries/pillow/demo.jpg b/python3_libraries/pillow/demo.jpg index 1548750b16cd519ef3cf7d7e2d9414db561a2fdd..fb5b602837626ce59b9e6a28194fcd932a8097ce 100755 GIT binary patch literal 120149 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%0DGqi%_bikkum-_JQR67WOZyP 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 ge|m)SA0Cej9 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 diff --git a/python3_libraries/pillow/demo.png b/python3_libraries/pillow/demo.png index db54998f310603e891b97a2779c3e5cc9e665fca..2ba5165d40673f845b7ce0724195647e881a6e1d 100755 GIT binary patch delta 106330 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%0DD9A!1;AaQyk#2{!4JvjUBWM@x9$IAm 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 Gdldm5^f)O1 delta 106330 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 Q2b=+i2b==82b=@FAwujYp#T5? From 14bbe85107b5098e5299aec2a8aa46462ab75f68 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 11 Jan 2023 15:18:01 +0800 Subject: [PATCH 112/122] Add py-spy --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fc91630..370c08c 100755 --- a/README.md +++ b/README.md @@ -976,10 +976,16 @@ Python实现的数据库。 * flask-debugtoolbar:django-debug-toolbar 的 flask 版。[链接]() * 性能分析器 - lineprofiler:逐行性能分析。[链接]() + + * lineprofiler:逐行性能分析。[链接](https://github.com/rkern/line_profiler) - * Memory Profiler:监控 Python 代码的内存使用。官网、内存 - profiling:一个交互式 Python 性能分析工具。[链接]() + * Memory Profiler:监控 Python 代码的内存使用。官网、内存 [链接](https://github.com/fabianp/memory_profiler) + + * [py-spy](https://github.com/benfred/py-spy) - Python程序的采样分析器. Rust编写. + + * [pyflame](https://github.com/uber/pyflame) - Python的跟踪分析器 + + * [vprof](https://github.com/nvdv/vprof) - 可视化Python分析器. * 其他 pyelftools:解析和分析 ELF 文件以及 DWARF 调试信息。[链接]() From e09538b71dc8e8f2518d23f9be3ef023c8df9556 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 11 Jan 2023 16:04:51 +0800 Subject: [PATCH 113/122] Update black --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 370c08c..e5957cf 100755 --- a/README.md +++ b/README.md @@ -611,7 +611,7 @@ django-viewlet因为github星级太少而未收录 * Flake8:模块化源码检查工具: pep8, pyflakes 以及 co。[链接](https://gitlab.com/pycqa/flake8) -* [black](https://github.com/ambv/black) - The uncompromising Python code formatter. +* [black](https://github.com/python/black) - The uncompromising Python code formatter. * Pylint:一个完全可定制的源码分析器。[链接](https://github.com/PyCQA/pylint) @@ -648,6 +648,8 @@ django-viewlet因为github星级太少而未收录 * clint:Python 命令行程序工具。[链接](https://github.com/kennethreitz/clint) * colorama:跨平台彩色终端文本。[链接](https://github.com/tartley/colorama) + + * [tqdm](https://github.com/tqdm/tqdm) - 用于循环和CLI的快速、可扩展的进度条。 * docopt:Python 风格的命令行参数解析器。[链接](https://github.com/docopt/docopt) --推荐 @@ -826,8 +828,6 @@ django-viewlet因为github星级太少而未收录 * matplotlib:Python 2D 绘图库。[链接](https://github.com/matplotlib/matplotlib) --推荐 * bokeh:用Python进行交互式web绘图。[链接](https://github.com/bokeh/bokeh) --推荐 [英文快速入门](http://bokeh.pydata.org/en/latest/docs/user_guide/quickstart.html) [中文快速入门](https://github.com/DonaldDai/Bokeh-CN) - - * ggplot:ggplot的 Python移植。[链接](https://github.com/yhat/ggpy) -荐 * [plotnine](https://github.com/has2k1/plotnine) - ggplot的 Python移植 -荐 @@ -1178,6 +1178,8 @@ Python版本和环境管理 * virtualenv:创建独立的Python 环境。[链接](https://github.com/pypa/virtualenv/) --强烈推荐 * virtualenvwrapper:virtualenv 的扩展。[链接](https://bitbucket.org/virtualenvwrapper/virtualenvwrapper) --强烈推荐 + + * [poetry](https://github.com/sdispater/poetry) - 简化Python依赖性管理和打包 --强烈推荐 ## 文件(Files) @@ -2070,6 +2072,7 @@ Where to discover new Python libraries. * [Full Stack Python](https://www.fullstackpython.com/) * [Python Cheatsheet](https://www.pythoncheatsheet.org/) * [Python Hackers](http://www.oss.io/open-source/) +* [Python Hackers](http://www.oss.io/open-source/) * [Python ZEEF](https://python.zeef.com/alan.richmond) * [Python 开发社区](https://www.ctolib.com/python/) * [Real Python](https://realpython.com) From 15474d5ec5c4dcf297d0f28c2462c19450860280 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 11 Jan 2023 16:08:35 +0800 Subject: [PATCH 114/122] =?UTF-8?q?Add=20space=20for=20=E8=BF=9B=E7=A8=8B(?= =?UTF-8?q?Processes)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e5957cf..f23b4ea 100755 --- a/README.md +++ b/README.md @@ -1576,7 +1576,7 @@ Python版本和环境管理 -##权限(Permissions) +## 权限(Permissions) *允许或拒绝用户访问数据或功能的库。* @@ -1584,7 +1584,7 @@ Python版本和环境管理 * [django-guardian](https://github.com/django-guardian/django-guardian) - 为Django 1.2+权限管理 * [django-rules](https://github.com/dfunckt/django-rules) - 小巧但功能强大的应用程序,它为Django提供对象级权限,而不需要数据库。 -##进程(Processes) +## 进程(Processes) *用于启动和与OS进程进行通信的库。* @@ -1592,7 +1592,7 @@ Python版本和环境管理 * [sarge](http://sarge.readthedocs.io/en/latest/) - Subprocesses的另一个封装。 * [sh](https://github.com/amoffat/sh) - 一个全面的Python子程序替代品。 --推荐 -##队列(Queue) +## 队列(Queue) *用于处理事件和任务队列的库。* @@ -1602,7 +1602,7 @@ Python版本和环境管理 * [rq](http://python-rq.org/) - 简单的Python作业队列。 --推荐 * [simpleq](https://github.com/rdegges/simpleq) - 一个简单的,无限可扩展的基于Amazon SQS的队列。 -##推荐系统(Recommender Systems) +## 推荐系统(Recommender Systems) *用于构建推荐系统的库。* From c30ad2efc05b0092559f55dd4c62149a662b221c Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 11 Jan 2023 17:25:28 +0800 Subject: [PATCH 115/122] =?UTF-8?q?Modify=20=20=E4=BB=A3=E7=A0=81=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=92=8Clint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f23b4ea..1fb1fb2 100755 --- a/README.md +++ b/README.md @@ -603,19 +603,25 @@ django-viewlet因为github星级太少而未收录 ## 代码分析和lint(Code Analysis) - * coala:语言独立和易于扩展的代码分析应用程序。[coala](https://github.com/coala/coala/) + * 代码分析 - * code2flow:把你的 Python 和 JavaScript 代码转换为流程图。暂时无法继续维护。[链接](https://github.com/scottrogowski/code2flow) - - * pycallgraph:这个库可以把你的Python 应用的流程(调用图)进行可视化。[链接](https://github.com/gak/pycallgraph) - - * Flake8:模块化源码检查工具: pep8, pyflakes 以及 co。[链接](https://gitlab.com/pycqa/flake8) + * coala:语言独立和易于扩展的代码分析应用程序。[coala](https://github.com/coala/coala/) + * code2flow:把你的 Python 和 JavaScript 代码转换为流程图。暂时无法继续维护。[链接](https://github.com/scottrogowski/code2flow) + * prospector - 分析Python代码并输出有关错误,潜在问题,违反常规和复杂性的信息的工具。[prospector](https://github.com/PyCQA/prospector) + * pycallgraph:这个库可以把你的Python 应用的流程(调用图)进行可视化。[链接](https://github.com/gak/pycallgraph) + * [vulture](https://github.com/jendrikseipp/vulture) - 死代码分析. + + * 代码Linters + + * Flake8:模块化源码检查工具: pycodestyle, pyflakes 以及 McCabe的封装。[链接](https://gitlab.com/pycqa/flake8) + * [awesome-flake8-extensions](https://github.com/DmytroLitvinov/awesome-flake8-extensions) + * pylama:python和JavaScript代码审计。[链接](https://github.com/klen/pylama) * [black](https://github.com/python/black) - The uncompromising Python code formatter. * Pylint:一个完全可定制的源码分析器。[链接](https://github.com/PyCQA/pylint) - * pylama:python代码审计。[链接](https://github.com/klen/pylama) + * YAPF: Google的Python代码格式化工具。[链接](https://github.com/google/yapf) --推荐 @@ -629,7 +635,7 @@ django-viewlet因为github星级太少而未收录 * pep8 :python风格检查。[链接](https://github.com/PyCQA/pycodestyle) --推荐 - * prospector - 分析Python代码并输出有关错误,潜在问题,违反常规和复杂性的信息的工具。[prospector](https://github.com/PyCQA/prospector) + * [pyre-check](https://github.com/facebook/pyre-check) - Performant type checking. @@ -1016,6 +1022,7 @@ Python实现的数据库。 * DevOps的软件和库。* * [Ansible](https://github.com/ansible/ansible) - 极其简单的IT自动化平台。 --推荐 +* [prometheus](https://github.com/prometheus/client_python) - 普罗米修斯监控平台python官方客户端。 --推荐 * [Cloud-Init](http://cloudinit.readthedocs.io/en/latest/) - 处理云实例的早期初始化的多分发包。 * [cuisine](https://github.com/sebastien/cuisine) - 为 Fabric 提供一系列高级函数。 * [Docker Compose](https://github.com/docker/compose) - 使用[Docker](https://www.docker.com/)的快速隔离开发环境。 --推荐 @@ -1627,9 +1634,9 @@ Python版本和环境管理 * [flask-api](http://www.flaskapi.org/) - 适用于Flask的Browsable Web API。 * [flask-restful](https://github.com/flask-restful/flask-restful) - 快速构建适用于Flask的REST API。 --推荐 * [flask-restless](https://github.com/jfinkels/flask-restless) - 为使用SQLAlchemy定义的数据库模型生成RESTful API。 -*Pyramid +* Pyramid * [cornice](https://github.com/Cornices/cornice) - Pyramid的RESTful框架。 -*其他 +* 其他 * [falcon](http://falconframework.org/) - 一个用于构建云API和Web应用后端的高性能框架。 * [hug](https://github.com/timothycrosley/hug) - 一个Python3框架,用于通过HTTP干净地公开API以及带有自动文档和验证的命令行。 --推荐 * [fastapi](https://github.com/tiangolo/fastapi) - 现代的、快速的、基于标准Python类型提示的Web框架,用于用Python 3.6+构建API。 -- 强烈推荐 [中文快速入门](https://www.jianshu.com/p/4d8120af7c4c) https://www.jianshu.com/p/4d8120af7c4c From 7b51ea7fc51bccd92b1f352ae195ed25fc51e17e Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 11 Jan 2023 19:20:39 +0800 Subject: [PATCH 116/122] Add Refactoring --- README.md | 91 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 56 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 1fb1fb2..d72c7cb 100755 --- a/README.md +++ b/README.md @@ -177,6 +177,9 @@ https://westurner.github.io/wiki/awesome-python-testing ## Web UI测试自动化 + * [PyAutoGUI](https://github.com/asweigart/pyautogui) - 跨平台GUI自动化Python模块。 + + * [Schemathesis](https://github.com/kiwicom/schemathesis) - 用Open API / Swagger规范构建的Web应用程序进行基于属性的自动测试的工具。 * splinter - web UI测试工具,基于selnium封装。 [链接](https://github.com/cobrateam/splinter) @@ -407,6 +410,7 @@ radar 因为github星级太少而未收录 最近版本参见原文:https://gi * django-xadmin - 方便的Django admin替代。 完全支持插件扩展,基于 Twitter Bootstrap,并有站内书签、支持 xls, csv, xml和json数据导入等不少增强。 [链接](https://github.com/sshwsfc/xadmin) + * [jet-bridge](https://github.com/jet-admin/jet-bridge) - 管理面板框架,适用于任何具有良好用户界面的应用程序(例如Jet Django) * flask-admin - Flask的简单和可扩展的 web 管理界面框架。 [链接](https://github.com/flask-admin/flask-admin) @@ -616,33 +620,34 @@ django-viewlet因为github星级太少而未收录 * Flake8:模块化源码检查工具: pycodestyle, pyflakes 以及 McCabe的封装。[链接](https://gitlab.com/pycqa/flake8) * [awesome-flake8-extensions](https://github.com/DmytroLitvinov/awesome-flake8-extensions) * pylama:python和JavaScript代码审计。[链接](https://github.com/klen/pylama) + * Pylint:完全可定制的源码分析器。[链接](https://github.com/PyCQA/pylint) + * [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) - 有史以来最严格和最有主见的Python linter. + + * 代码格式化 + * pep8 :python风格检查。[链接](https://github.com/PyCQA/pycodestyle) --推荐 + * autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范。[链接](https://github.com/hhatto/autopep8) --推荐 + * [black](https://github.com/python/black) - 不折不扣的Python代码格式化器。 + * [isort](https://github.com/timothycrosley/isort) - 对import进行排序的Python工具/库。 + * [yapf](https://github.com/google/yapf) - 来自Google的Python代码格式化器。 + + * 静态类型检查 [awesome-python-typing](https://github.com/typeddjango/awesome-python-typing) + + * mypy :静态类型检查。[链接](https://github.com/python/mypy) --推荐 + * [pyre-check](https://github.com/facebook/pyre-check) - 执行类型检查 + * [typeshed](https://github.com/python/typeshed) - 类型注释。 + + * 静态类型注释生成器 + * [MonkeyType](https://github.com/Instagram/MonkeyType) - 通过收集运行时类型生成静态类型注释。 + * [pytype](https://github.com/google/pytype) - Pytype检查和推断Python代码的类型 - 不需要类型注释。 -* [black](https://github.com/python/black) - The uncompromising Python code formatter. - - * Pylint:一个完全可定制的源码分析器。[链接](https://github.com/PyCQA/pylint) - - - * YAPF: Google的Python代码格式化工具。[链接](https://github.com/google/yapf) --推荐 - - * pylama:Python 和 JavaScript 的代码审查工具。[链接](https://github.com/klen/pylama/blob/develop/docs/index.rst) - - * autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范。[链接](https://github.com/hhatto/autopep8) --推荐 - - * mypy :静态类型检查。[链接](https://github.com/python/mypy) --推荐 - - * pytype :google的静态类型检查工具,不依赖注解。[链接](https://github.com/google/pytype) --推荐 - - * pep8 :python风格检查。[链接](https://github.com/PyCQA/pycodestyle) --推荐 - - - - * [pyre-check](https://github.com/facebook/pyre-check) - Performant type checking. ## 命令行工具(Command-line Tools) ### 命令行程序开发( Command-line Application Development) + * [alive-progress](https://github.com/rsalmei/alive-progress) - 一种新的进度条,具有实时吞吐量、等值和非常酷的动画效果。 + * asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级API。[链接](https://github.com/peterbrittain/asciimatics) * cement:Python 的命令行程序框架。[链接](https://github.com/datafolklabs/cement/) @@ -674,6 +679,8 @@ django-viewlet因为github星级太少而未收录 * bashplotlib:在终端中进行基本绘图。[链接](https://github.com/glamp/bashplotlib) * caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。[链接](https://github.com/brettcannon/caniusepython3) + + * [copyer](https://github.com/pykong/copier) - 用于渲染项目模板的库和命令行工具。 * cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。[链接](https://github.com/brettcannon/caniusepython3) @@ -711,6 +718,7 @@ django-viewlet因为github星级太少而未收录 计算机视觉库。 + * [Kornia](https://github.com/arraiyopensource/kornia/) - Kornia是用于PyTorch的可微分计算机视觉库。 * OpenCV:开源计算机视觉库。[链接](https://opencv.org/) [2018最佳人工智能图像处理工具OpenCV书籍下载](https://www.jianshu.com/p/62a32f108341) @@ -916,6 +924,8 @@ Python实现的数据库。 * dataset:在数据库中存储 Python 字典 pymssql:简单的 Microsoft SQL Server 数据库接口。[链接](https://github.com/pudo/dataset) + * [SuperSQLite](https://github.com/plasticityai/supersqlite) - 一个建立在[apsw](https://github.com/rogerbinns/apsw)之上的超强SQLite库。 + * cassandra-python-driver:Cassandra 的 Python 驱动。[链接](https://github.com/datastax/python-driver) * HappyBase:Apache HBase。[链接](https://github.com/wbolster/happybase) @@ -928,8 +938,6 @@ Python实现的数据库。 * redis-py:Redis 的 Python 客户端。[链接](https://github.com/andymccurdy/redis-py) -- 推荐 - * telephus:基于 Twisted 的 Cassandra 客户端。[链接](https://github.com/driftx/Telephus) - * txRedis:基于 Twisted 的 Redis 客户端。[链接](https://github.com/driftx/Telephus) ## 日期和时间(Date and Time) @@ -1343,23 +1351,23 @@ Python版本和环境管理 * [pillow](http://hao.jobbole.com/pillow/):Pillow 是一个更加易用版的 [PIL](http://www.pythonware.com/products/pil/)。[官网](http://pillow.readthedocs.org/en/latest/) -推荐 - [python库介绍-图像处理工具pillow中文文档-手册(2018 5.*)](https://china-testing.github.io/python3_lib_pil.html) - + [python库介绍-图像处理工具pillow中文文档-手册(2018 5.*)](https://china-testing.github.io/python3_lib_pil.html) * hmap:图像直方图映射。[官网](https://github.com/rossgoodwin/hmap) * imgSeek:使用视觉相似性搜索一组图片集合的项目。[官网](https://sourceforge.net/projects/imgseek/) 较长时间没有更新 * nude.py:裸体检测。[官网](https://github.com/hhatto/nude.py) * pyBarcode:不借助 PIL 库在 Python 程序中生成条形码。[官网](https://pythonhosted.org/pyBarcode/) * pygram:类似 Instagram 的图像滤镜。[官网](https://github.com/ajkumar25/pygram) * python-qrcode:纯 Python 实现的二维码生成器。[官网](https://github.com/lincolnloop/python-qrcode) --推荐 +* [pyvips](https://github.com/libvips/pyvips) - 快速的图像处理库,内存需求低。 * Quads:基于四叉树的计算机艺术。[官网](https://github.com/fogleman/Quads) * scikit-image:一个用于(科学)图像处理的 Python 库。[官网](http://scikit-image.org/) --推荐 * thumbor:小型图像服务,具有剪裁,尺寸重设和翻转功能。[官网](https://github.com/thumbor/thumbor) --推荐 * wand:[MagickWand](http://www.imagemagick.org/script/magick-wand.php)的 Python 绑定。MagickWand 是 ImageMagick 的 C API 。[官网](https://github.com/dahlia/wand) * face_recognition:简单易用的 python 人脸识别库。[官网](https://github.com/ageitgey/face_recognition) --强烈推荐 -* [pagan](https://github.com/daboth/pagan) - 基于输入字符串和散列的复古identicon(阿凡达)生成。 -* [opencv-python](https://github.com/skvark/opencv-python) 预编译的opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless。 --推荐 -* [imutils](https://github.com/jrosebr1/imutils) 一系列便利函数,可以使用OpenCV和Python轻松进行基本图像处理操作,如平移,旋转,调整大小,骨架化和显示Matplotlib图像。 --推荐 -* [word_cloud](https://github.com/amueller/word_cloud) 词云 +* [pagan](https://github.com/daboth/pagan) - 基于输入字符串和散列的复古identicon(阿凡达)生成。 +* [opencv-python](https://github.com/skvark/opencv-python) 预编译的opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless。 --推荐 +* [imutils](https://github.com/jrosebr1/imutils) 一系列便利函数,可以使用OpenCV和Python轻松进行基本图像处理操作,如平移,旋转,调整大小,骨架化和显示Matplotlib图像。 --推荐 +* [word_cloud](https://github.com/amueller/word_cloud) 词云 ## 实现(Implementations) @@ -1452,7 +1460,7 @@ Python版本和环境管理 * [Python(x,y)](http://python-xy.github.io/) - 基于Qt和Spyder的面向科学应用的Python发行版。 --推荐 * [pythonlibs](http://www.lfd.uci.edu/~gohlke/pythonlibs/) - Python扩展包的非官方Windows二进制文件。 --推荐 * [PythonNet](https://github.com/pythonnet/pythonnet) - .NET公共语言运行时(CLR)的Python集成。 -* [PyWin32](https://sourceforge.net/projects/pywin32/) - Python的Windows扩展。 --推荐 +* [PyWin32](https://github.com/mhammond/pywin32) - Python的Windows扩展。 --推荐 * [WinPython](https://winpython.github.io/) - Windows 7/8的便携式开发环境。 --推荐 ## 杂项 @@ -1521,14 +1529,21 @@ Python版本和环境管理 * Django Models:Django 的一部分。[链接](https://docs.djangoproject.com/en/dev/topics/db/models/) * SQLAlchemy:Python SQL 工具以及对象关系映射工具。[链接](http://www.sqlalchemy.org/) + * [awesome-sqlalchemy](https://github.com/dahlia/awesome-sqlalchemy) + + * [dataset](https://github.com/pudo/dataset) - 在数据库中存储Python dicts - 适合SQLite、MySQL和PostgreSQL。 + + * [orator](https://github.com/sdispater/orator) - Orator ORM提供了简单而漂亮的ActiveRecord实现。 + + * [orm](https://github.com/encode/orm) - 异步ORM。 - * awesome-sqlalchemy系列 [链接](https://github.com/justquick/django-activity-stream) - - * Peewee:一个小巧,富有表达力的 ORM, 支持postgresql, mysql and sqlite。[链接]https://github.com/coleifer/peewee) + * Peewee:小巧,富有表达力的 ORM, 支持postgresql, mysql and sqlite。[链接]https://github.com/coleifer/peewee) - * PonyORM:提供面向生成器的 SQL 接口的 ORM。[链接](https://github.com/ponyorm/pony/) + * pony:提供面向生成器的 SQL 接口的 ORM。[链接](https://github.com/ponyorm/pony/) * python-sql:编写 Python 风格的 SQL 查询。[链接](http://python-sql.tryton.org/) + + * [pydal](https://github.com/web2py/pydal/) - 纯Python数据库抽象层。 ### NoSQL 数据库 @@ -1701,6 +1716,8 @@ Python版本和环境管理 * [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) - A Python wrapper around [RapidJSON](https://github.com/Tencent/rapidjson). +* [ultrajson](https://github.com/esnme/ultrajson) - 用C语言编写的快速JSON解码器和编码器。 + ## 无服务器框架(Serverless Frameworks @@ -1981,8 +1998,11 @@ Archive 全栈 Web 框架。 * Django:Python 界最流行的 web 框架。[链接](https://github.com/django/django) wesome-django系列 [awesome-django](https://github.com/wsvincent/awesome-django) --强烈推荐 + * [awesome-django](https://github.com/shahraizali/awesome-django) + * [awesome-django](https://github.com/wsvincent/awesome-django) * Flask:Python 微型框架。[链接](https://github.com/pallets/flask) awesome-flask系列 [链接](https://github.com/humiaozuzu/awesome-flask) --强烈推荐 python web框架第一名 + * [awesome-flask](https://github.com/humiaozuzu/awesome-flask) * pyramid:一个小巧,快速,接地气的开源Python web 框架。[链接](https://github.com/Pylons/pyramid/) awesome-pyramid系列 [链接](https://github.com/uralbash/awesome-pyramid) @@ -1998,6 +2018,8 @@ Archive * TurboGears:易于扩展的全栈微框架。[链接](https://github.com/TurboGears/tg2) * web2py:全栈 web 框架和平台,用于安全数据库访问的web用。[链接](https://github.com/web2py/web2py) + + * [Masonite](https://github.com/MasoniteFramework/masonite) - 现代和以开发者为中心的Python网络框架。 * Tornado - web 框架和异步网络库. [链接](https://github.com/tornadoweb/tornado/blob/master/docs/index.rst) @@ -2078,13 +2100,12 @@ Where to discover new Python libraries. * [Django Packages](https://djangopackages.org/) * [Full Stack Python](https://www.fullstackpython.com/) * [Python Cheatsheet](https://www.pythoncheatsheet.org/) -* [Python Hackers](http://www.oss.io/open-source/) -* [Python Hackers](http://www.oss.io/open-source/) * [Python ZEEF](https://python.zeef.com/alan.richmond) * [Python 开发社区](https://www.ctolib.com/python/) * [Real Python](https://realpython.com) * [Trending Python repositories on GitHub today](https://github.com/trending?l=python) * [Сообщество Python Программистов](https://python-scripts.com/) +* [Pythonic News](https://news.python.sc/) ## Weekly From 32335fb0df61d5effc5a73153cc025983d74c5f8 Mon Sep 17 00:00:00 2001 From: china-testing Date: Wed, 11 Jan 2023 19:40:13 +0800 Subject: [PATCH 117/122] Add request-html --- README.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d72c7cb..1bd09e9 100755 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ Table of Contents * [其他](#其他) * [包管理(Package Management)](#包管理package-management) * [包仓库](#包仓库) + * [重构(Refactoring)](#Refactoring) * [RESTful API](#restful-api) * [RPC服务器(RPC Servers)](#rpc服务器rpc-servers) * [科学(Science)](#科学science) @@ -656,8 +657,6 @@ django-viewlet因为github星级太少而未收录 * cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。[链接](https://git.openstack.org/cgit/openstack/cliff) - * clint:Python 命令行程序工具。[链接](https://github.com/kennethreitz/clint) - * colorama:跨平台彩色终端文本。[链接](https://github.com/tartley/colorama) * [tqdm](https://github.com/tqdm/tqdm) - 用于循环和CLI的快速、可扩展的进度条。 @@ -962,9 +961,8 @@ Python实现的数据库。 * when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。[链接](https://github.com/dirn/When.py) - * when.py:人性化的datetime。[链接](https://github.com/dirn/When.py) - - + * [maya](https://github.com/timofurrer/maya):人性化的datetime。 + ## 调试工具(Debugging Tools) 代码调试的库。 @@ -1160,8 +1158,6 @@ python-currencies因为星级较少没有收录 * imbox:人性化的Python IMAP 库[链接](https://github.com/martinrusev/imbox) - * inbox.py:人性化的Python SMTP 服务器。[链接](https://github.com/kennethreitz/inbox.py) - * inbox:具有时尚API的IMAP/SMTP同步系统。[链接](https://github.com/nylas/sync-engine) -- 推荐 * lamson:Python 风格的 SMTP 应用服务器。[链接](https://github.com/zedshaw/lamson) @@ -1250,6 +1246,8 @@ Python版本和环境管理 * Toolz:一组用于迭代器,函数和字典的函数式编程工具。[链接](https://github.com/pytoolz/toolz) + * [returns](https://github.com/dry-python/returns) - 一组类型安全的单体、tranformers和组合工具 + ##动态消息 用来创建用户活动的库。 @@ -1322,7 +1320,7 @@ Python版本和环境管理 使用 HTTP 的库。 * aiohttp:基于 asyncio 的异步 HTTP 网络库。[官网](https://github.com/aio-libs/aiohttp) * requests:人性化的 HTTP 请求库。[官网](http://docs.python-requests.org/en/latest/) --强烈推荐 -* grequests:requests 库 + gevent ,用于异步 HTTP 请求.[官网](https://github.com/kennethreitz/grequests) +* grequests:requests 库 + gevent ,用于异步 HTTP 请求.[官网](https://github.com/spyoungtech/grequests) * httplib2:全面的 HTTP 客户端库。[官网](https://github.com/jcgregorio/httplib2) * treq:类似 requests 的 Python API 构建于 Twisted HTTP 客户端之上。[官网](https://github.com/twisted/treq) * urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。[官网](https://github.com/shazow/urllib3) @@ -1503,6 +1501,7 @@ Python版本和环境管理 用于网络编程的库。 +* [uvicorn](https://github.com/encode/uvicorn) - Uvicorn是一个快如闪电的ASGI服务器实现,使用uvloop和httptools。 * asyncio:(Python 标准库) 异步 I/O, 事件循环, 协程以及任务。[官网](https://docs.python.org/3/library/asyncio.html) -推荐 * [Twisted](https://github.com/twisted/twisted):一个事件驱动的网络引擎。[官网](https://twistedmatrix.com/trac/) -推荐 * pulsar:事件驱动的并发框架。[官网](https://github.com/quantmind/pulsar) @@ -1510,7 +1509,7 @@ Python版本和环境管理 * pyzmq:ZeroMQ 消息库的 Python 封装。[官网](http://zeromq.github.io/pyzmq/) * Toapi:轻巧,简单,快速的 Flask 库,致力于为所有网站提供 API 服务。[官网](https://github.com/gaojiuli/toapi) -推荐 * txZMQ:基于 Twisted 的 ZeroMQ 消息库的 Python 封装。[官网](https://github.com/smira/txZMQ) -* [NAPALM](https://github.com/napalm-automation/napalm) - 用于操纵网络设备的跨供应商API。 +* [NAPALM](https://github.com/napalm-automation/napalm) - 用于操纵网络设备的跨供应商API。 ### 动态消息 @@ -1636,6 +1635,14 @@ Python版本和环境管理 * [surprise](http://surpriselib.com) - 用于构建和分析推荐系统的scikit。 * [TensorRec](https://github.com/jfkirk/tensorrec) - TensorFlow中的推荐引擎框架 +## 重构(Refactoring) + +*Python的重构工具和库*。 + + * [Bicycle Repair Man](http://bicyclerepair.sourceforge.net/) - Bicycle Repair Man,一个Python的重构工具。 + * [Bowler](https://pybowler.io/) - 现代 Python 的安全代码重构。 + * [Rope](https://github.com/python-rope/rope) - Rope是一个Python重构库。 + ## RESTful API *用于开发RESTful API的库。* @@ -1732,7 +1739,7 @@ Python版本和环境管理 ### 通用 - * tablib:处理 XLS, CSV, JSON, YAML表格数据的模块。[链接](https://github.com/kennethreitz/tablib) + * tablib:处理 XLS, CSV, JSON, YAML表格数据的模块。[链接](https://github.com/jazzband/tablib) ### Office @@ -1960,6 +1967,8 @@ Archive * python-goose:HTML内容/文章提取器。[链接](https://github.com/grangier/python-goose) * python-readability:arc90的易读性工具的移植。[链接](https://github.com/buriy/python-readability) + + * [request-html](https://github.com/psf/requests-html) - Pythonic HTML解析。 * sumy:一个为文本文件和 HTML 页面进行自动摘要的模块。[链接](https://github.com/miso-belica/sumy) From c9d0b9b398ae73d60bf86cce11184ef31a7640cf Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 12 Jan 2023 11:46:20 +0800 Subject: [PATCH 118/122] Add gprof2dot --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1bd09e9..f5be2bb 100755 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ Table of Contents * [其他](#其他) * [包管理(Package Management)](#包管理package-management) * [包仓库](#包仓库) - * [重构(Refactoring)](#Refactoring) + * [重构(Refactoring)](#重构Refactoring) * [RESTful API](#restful-api) * [RPC服务器(RPC Servers)](#rpc服务器rpc-servers) * [科学(Science)](#科学science) @@ -615,6 +615,8 @@ django-viewlet因为github星级太少而未收录 * prospector - 分析Python代码并输出有关错误,潜在问题,违反常规和复杂性的信息的工具。[prospector](https://github.com/PyCQA/prospector) * pycallgraph:这个库可以把你的Python 应用的流程(调用图)进行可视化。[链接](https://github.com/gak/pycallgraph) * [vulture](https://github.com/jendrikseipp/vulture) - 死代码分析. + * [gprof2dot](https://github.com/jrfonseca/gprof2dot) - 转换profiling为图形. + * [objgraph](https://github.com/mgedmin/objgraph) - python对象图. * 代码Linters @@ -938,6 +940,8 @@ Python实现的数据库。 * redis-py:Redis 的 Python 客户端。[链接](https://github.com/andymccurdy/redis-py) -- 推荐 * txRedis:基于 Twisted 的 Redis 客户端。[链接](https://github.com/driftx/Telephus) + + * pymemcache:纯Python memcached 客户端。[链接](https://github.com/pinterest/pymemcache) ## 日期和时间(Date and Time) From cbc4b53f5b2ea0c3796c1224db883dbd66df9643 Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 12 Jan 2023 14:49:06 +0800 Subject: [PATCH 119/122] Add fsociety --- README.md | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f5be2bb..d30be37 100755 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ Table of Contents * [Windows UI测试自动化](#windows-ui测试自动化) * [UI测试](#ui测试) * [性能测试](#性能测试) + * [渗透测试](#渗透测试) * [跨语言调用](#跨语言调用) * [测试框架](#测试框架) * [Mock](#mock) @@ -264,7 +265,12 @@ autopy、WATSUP、winGuiAuto因为较长时间未更新未收录 * boom - 类似ab(ApacheBench)的性能测试工具。 [链接](https://github.com/tarekziade/boom) +## 渗透测试 +* [fsociety](https://github.com/Manisso/fsociety) - 一个渗透测试框架。 +* [setoolkit](https://github.com/trustedsec/social-engineer-toolkit) - 用于社会工程的工具箱。 +* [sqlmap](https://github.com/sqlmapproject/sqlmap) - 自动SQL注入和数据库接管的工具。 + ## 跨语言调用 * [python库介绍-jpype:python到java桥](https://china-testing.github.io/python3_lib_jpype1.html) @@ -719,6 +725,9 @@ django-viewlet因为github星级太少而未收录 计算机视觉库。 + + * [EasyOCR](https://github.com/JaidedAI/EasyOCR) - 即用型OCR,支持40多种语言。 + * [Face Recognition](https://github.com/ageitgey/face_recognition) - 简单的面部识别库。 * [Kornia](https://github.com/arraiyopensource/kornia/) - Kornia是用于PyTorch的可微分计算机视觉库。 * OpenCV:开源计算机视觉库。[链接](https://opencv.org/) @@ -729,6 +738,8 @@ django-viewlet因为github星级太少而未收录 * pytesseract:Google Tesseract OCR 的另一包装库。[链接](https://github.com/madmaze/pytesseract) [文档](https://china-testing.github.io/python3_lib_pytesseract.html) * SimpleCV:一个用来创建计算机视觉应用的开源框架。[链接](https://github.com/sightmachine/SimpleCV) + + * [tesserocr](https://github.com/sirfz/tesserocr) - 另一个简单的、对Pillow友好的、围绕OCR的`tesseract-ocr` API的包装器。 ## 并发和并行及异步与网络(Concurrency and Parallelism) @@ -869,6 +880,8 @@ django-viewlet因为github星级太少而未收录 * Altair - 用于Python的声明式统计可视化库。[链接](https://github.com/altair-viz/altair) * bqplot - Jupyter Notebook的互动绘图库。[链接](https://github.com/bloomberg/bqplot) + + * [Cartopy](https://github.com/SciTools/cartopy) - 支持matplotlib的地图学python库。 * Seaborn - 使用Matplotlib进行统计数据可视化。[链接](https://github.com/mwaskom/seaborn) -荐 @@ -924,6 +937,8 @@ Python实现的数据库。 * dataset:在数据库中存储 Python 字典 pymssql:简单的 Microsoft SQL Server 数据库接口。[链接](https://github.com/pudo/dataset) + + * [sqlite3](https://docs.python.org/3/library/sqlite3.html) - (Python标准库)SQlite接口与DB-API 2.0兼容。 * [SuperSQLite](https://github.com/plasticityai/supersqlite) - 一个建立在[apsw](https://github.com/rogerbinns/apsw)之上的超强SQLite库。 @@ -1074,8 +1089,6 @@ Python实现的数据库。 * awesome-sphinxdoc:[链接](https://github.com/yoloseem/awesome-sphinxdoc) - * MkDocs:对 Markdown 友好的文档生成器。[链接](https://github.com/mkdocs/mkdocs/) -- 推荐 - * pdoc:替换Epydoc 的库,可以自动生成 Python 库的 API 文档。[链接](https://github.com/BurntSushi/pdoc ) * Pycco:文学编程风格的文档生成器。[链接](https://github.com/pycco-docs/pycco) @@ -1268,19 +1281,20 @@ Python版本和环境管理 * enaml:使用类似 QML 的 Declaratic 语法来创建美观的用户界面。[链接](https://github.com/nucleic/enaml) * kivy:创建NUI应用程序的库,可以运行在 Windows, Linux, Mac OS X, Android 以及 iOS 平台上。[链接](https://github.com/kivy/kivy) -推荐 * pyglet:Python 的跨平台窗口及多媒体库。[链接](https://bitbucket.org/pyglet/) - * PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5。[链接](https://riverbankcomputing.com/software/pyqt/intro) + * PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5。[链接](https://doc.qt.io/qtforpython/) * PySide:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4。[链接](https://wiki.qt.io/PySide) * Tkinter:Python GUI 标准库。[链接](https://wiki.python.org/moin/TkInter) * [PySimpleGUI](https://github.com/PySimpleGUI/PySimpleGUI) - Wrapper for tkinter, Qt, WxPython and Remi that creates a unified, easy to understand & more Python-like interface for beginner and intermediate level custom GUIs. * Toga:Python 原生的, 操作系统原生的 GUI 工具包。[链接](https://github.com/pybee/toga) * urwid:创建终端 GUI 应用的库,支持组件,事件和丰富的色彩等。[链接](https://github.com/urwid/urwid) * wxPython:wxPython 是 wxWidgets C++ 类库和 Python 语言混合的产物。[链接](https://github.com/wxWidgets/Phoenix/) + * [DearPyGui](https://github.com/RaylockLLC/DearPyGui/) - 一个简单的GPU加速的Python GUI框架 * PyGObject:GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 绑定。[链接](https://wiki.gnome.org/Projects/PyGObject) * Flexx:纯 Python编写的用来创建 GUI 程序的工具集,它使用 web 技术进行界面的展示。[链接](https://github.com/flexxui/flexx) ## 游戏开发(Game Development) - +* [Arcade](https://api.arcade.academy/en/latest/) - Arcade是一个现代Python框架,用于制作具有引人注目的图形和声音的游戏。 * [Cocos2d](https://github.com/los-cocos/cocos) - cocos2d是用于构建2D游戏,演示和其他图形/交互式应用程序的框架。它基于pyglet。 * [Panda3D](https://www.panda3d.org/) - 由迪士尼开发并由卡内基梅隆娱乐技术中心维护的3D游戏引擎。用C ++编写,完全用Python包装。 -推荐 * [Pygame](http://www.pygame.org/news.html) - Pygame是一套用于编写游戏的Python模块。 -推荐 @@ -1342,7 +1356,6 @@ Python版本和环境管理 * [scapy](https://github.com/secdev/scapy) - 出色的数据包操作库。 * [thrift-tools](https://github.com/pinterest/thrift-tools) thrift抓包工具。 * mitmproxy:HTTP和抓包库。[官网](https://github.com/mitmproxy/mitmproxy) -* [wifi](https://github.com/rockymeza/wifi) - 用于在Linux上使用WiFi的Python库和命令行工具。 * Pyro:Python 机器人编程库。[官网](http://pyrorobotics.com/) * PyUserInput:跨平台的,控制鼠标和键盘的模块。[官网](https://github.com/SavinaRoja/PyUserInput) @@ -1360,6 +1373,7 @@ Python版本和环境管理 * pyBarcode:不借助 PIL 库在 Python 程序中生成条形码。[官网](https://pythonhosted.org/pyBarcode/) * pygram:类似 Instagram 的图像滤镜。[官网](https://github.com/ajkumar25/pygram) * python-qrcode:纯 Python 实现的二维码生成器。[官网](https://github.com/lincolnloop/python-qrcode) --推荐 +* [pywal](https://github.com/dylanaraps/pywal) - 从图像生成色彩方案的工具。 * [pyvips](https://github.com/libvips/pyvips) - 快速的图像处理库,内存需求低。 * Quads:基于四叉树的计算机艺术。[官网](https://github.com/fogleman/Quads) * scikit-image:一个用于(科学)图像处理的 Python 库。[官网](http://scikit-image.org/) --推荐 @@ -1414,6 +1428,7 @@ Python版本和环境管理 * [gunnery](https://github.com/gunnery/gunnery) - 具有基于Web界面的分布式系统的多用途任务执行工具。 * [Joblib](http://pythonhosted.org/joblib/index.html) - 一组用Python提供轻量级流水线的工具。 * [plan](https://github.com/fengsp/plan) - 用Python编写crontab文件就像一个魅力一样。 +* [Prefect](https://github.com/PrefectHQ/prefect) - 现代工作流协调框架,使其能够轻松构建、安排和监控强大的数据管道。 * [schedule](https://github.com/dbader/schedule) - 人性化的 Python 任务调度库。 --推荐 * [Spiff](https://github.com/knipknap/SpiffWorkflow) - 以纯Python实现的强大的工作流引擎。 * [TaskFlow](https://github.com/openstack/taskflow) - 可以让你方便执行任务的 Python 库,一致并且可靠。 @@ -1424,9 +1439,11 @@ Python版本和环境管理 *用于生成和处理日志的库。* * [Eliot](https://github.com/ScatterHQ/eliot) - 复杂和分布式系统日志。 -* [logbook](https://github.com/getlogbook/logbook) - 记录Python的替代品。 +* [logbook](https://github.com/getlogbook/logbook) - Python logging的替代。 * [logging](https://docs.python.org/2/library/logging.html) - (Python标准库)Python的日志工具。 --推荐 -* [raven](https://github.com/getsentry/raven-python) - Sentry的Python客户端,用于Web应用程序的日志/错误跟踪,崩溃报告和聚合平台。 +* [loguru](https://github.com/Delgan/loguru) - 旨在为Python带来愉快的日志记录的库。 +* [sentry-python](https://github.com/getsentry/sentry-python) - Python的Sentry SDK。 +* [structlog](https://www.structlog.org/en/stable/) - 结构化的日志记录变得简单。 ## 机器学习 @@ -1622,7 +1639,8 @@ Python版本和环境管理 *用于处理事件和任务队列的库。* * [celery](http://www.celeryproject.org/) - 基于分布式消息传递的异步任务队列/作业队列。 --推荐 -* [huey](https://github.com/coleifer/huey) - 小多线程任务队列。 +* [daramatiq](https://github.com/Bogdanp/dramatiq) - Python 3的快速、可靠的后台任务处理库。 +* [huey](https://github.com/coleifer/huey) - 小任务队列。 * [mrq](https://github.com/pricingassistant/mrq) - Queue先生 - 使用Redis&gevent的Python中的分布式工作者任务队列。 * [rq](http://python-rq.org/) - 简单的Python作业队列。 --推荐 * [simpleq](https://github.com/rdegges/simpleq) - 一个简单的,无限可扩展的基于Amazon SQS的队列。 @@ -1703,7 +1721,7 @@ Python版本和环境管理 * [statsmodels](https://github.com/statsmodels/statsmodels) - Python中的统计建模和计量经济学。 --推荐 * [SymPy](https://github.com/sympy/sympy) - 符号数学的Python库。 * [Zipline](https://github.com/quantopian/zipline) - Pythonic算法交易库。 --推荐 -* [SimPy](https://bitbucket.org/simpy/simpy) - 基于流程的离散事件仿真框架。 --推荐 +* [SimPy](https://gitlab.com/team-simpy/simpy) - 基于流程的离散事件仿真框架。 --推荐 ## 搜索 @@ -1805,12 +1823,11 @@ Archive ## 静态网站生成器(Static Site Generator) -* [Cactus(https://github.com/eudicots/Cactus) - 为设计师设计的静态网站生成器。 -* [Hyde](http://hyde.github.io/) - 基于Jinja2的静态网站生成器。 +* MkDocs:对 Markdown 友好的文档生成器。[链接](https://github.com/mkdocs/mkdocs/) -- 推荐 +* [makesite](https://github.com/sunainapai/makesite) - 简单、轻量级、无魔法的静态网站/博客生成器(< 130行)。 * [Lektor](https://www.getlektor.com/) - 易于使用的静态CMS和博客引擎。 * [Nikola](https://www.getnikola.com/) - 静态网站和博客生成器。 * [Pelican](https://blog.getpelican.com/) - 将Markdown或ReST用于内容,Jinja 2用于主题。 支持DVCS,Disqus。AGPL。 --强烈推荐 -* [Tinkerer](http://tinkerer.me/) - 博客引擎和静态网站生成器,由Sphinx提供支持。 ## 标签(Tagging) @@ -2113,6 +2130,9 @@ Where to discover new Python libraries. * [Django Packages](https://djangopackages.org/) * [Full Stack Python](https://www.fullstackpython.com/) * [Python Cheatsheet](https://www.pythoncheatsheet.org/) +* [Real Python](https://realpython.com) +* [The Hitchhiker’s Guide to Python](https://docs.python-guide.org/) +* [Ultimate Python study guide](https://github.com/huangsam/ultimate-python) * [Python ZEEF](https://python.zeef.com/alan.richmond) * [Python 开发社区](https://www.ctolib.com/python/) * [Real Python](https://realpython.com) From 5f788e08344b7f2dd9a192a7b10d97c27173adc9 Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 12 Jan 2023 15:24:42 +0800 Subject: [PATCH 120/122] Add gym --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index d30be37..794cfe5 100755 --- a/README.md +++ b/README.md @@ -1449,12 +1449,16 @@ Python版本和环境管理 *机器学习库。请参阅:[awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning#python)。* + +* [gym](https://github.com/openai/gym) - 一个开发和比较强化学习算法的工具包。 +* [H2O](https://github.com/h2oai/h2o-3) - 开源快速可扩展机器学习平台。 * [Metrics](https://github.com/benhamner/Metrics) - 机器学习评估指标。 * [NuPIC](https://github.com/numenta/nupic) - 用于智能计算的Numenta平台。 --推荐 * [scikit-learn](http://scikit-learn.org/) - 流行的机器学习Python库。 --推荐 * [Spark ML](http://spark.apache.org/docs/latest/ml-guide.html) - [Apache Spark](http://spark.apache.org/)的可扩展机器学习库。--推荐 * [vowpal_porpoise](https://github.com/josephreisinger/vowpal_porpoise) - 用于[Vowpal Wabbit]的轻量级Python包装器(https://github.com/JohnLangford/vowpal_wabbit/)。 * [xgboost](https://github.com/dmlc/xgboost) - 可扩展,可移植且分布式的渐变增强库。 --推荐 +* [MindsDB](https://github.com/mindsdb/mindsdb) - MindsDB是现有数据库的一个开源人工智能层,允许你毫不费力地使用标准查询来开发、训练和部署最先进的机器学习模型。 ## MapReduce From 49e4882af504ebf1e2cb687ea89c3f3edcb118cf Mon Sep 17 00:00:00 2001 From: china-testing Date: Thu, 16 Feb 2023 11:57:00 +0800 Subject: [PATCH 121/122] Add flask books! --- README.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 794cfe5..14bc74f 100755 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ Table of Contents * [表单(Forms)](#表单forms) * [函数式编程(Functional Programming)](#函数式编程functional-programming) * [图形用户界面(GUI)](#图形用户界面gui) + * [Game Development](#game-development) * [游戏开发(Game Development)](#游戏开发game-development) * [地理位置(Geolocation)](#地理位置geolocation) * [HTML操作(HTML Manipulation)](#html操作html-manipulation) @@ -622,7 +623,8 @@ django-viewlet因为github星级太少而未收录 * pycallgraph:这个库可以把你的Python 应用的流程(调用图)进行可视化。[链接](https://github.com/gak/pycallgraph) * [vulture](https://github.com/jendrikseipp/vulture) - 死代码分析. * [gprof2dot](https://github.com/jrfonseca/gprof2dot) - 转换profiling为图形. - * [objgraph](https://github.com/mgedmin/objgraph) - python对象图. + * [objgraph](https://github.com/mgedmin/objgraph) - python对象图. + * [mccabe](https://github.com/pycqa/mccabe) - McCabe复杂度检查. * 代码Linters @@ -1008,6 +1010,8 @@ Python实现的数据库。 * 性能分析器 + * pympler:运行时内存分析工具。[链接](https://github.com/pympler/pympler) + * lineprofiler:逐行性能分析。[链接](https://github.com/rkern/line_profiler) * Memory Profiler:监控 Python 代码的内存使用。官网、内存 [链接](https://github.com/fabianp/memory_profiler) @@ -1291,6 +1295,17 @@ Python版本和环境管理 * [DearPyGui](https://github.com/RaylockLLC/DearPyGui/) - 一个简单的GPU加速的Python GUI框架 * PyGObject:GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 绑定。[链接](https://wiki.gnome.org/Projects/PyGObject) * Flexx:纯 Python编写的用来创建 GUI 程序的工具集,它使用 web 技术进行界面的展示。[链接](https://github.com/flexxui/flexx) + + +## GraphQL + +*用于处理GraphQL的库。 + +* [graphene](https://github.com/graphql-python/graphene/) - Python的GraphQL框架。 +* [tartiflette-aiohttp](https://github.com/tartiflette/tartiflette-aiohttp/) - Tartiflette的一个基于aiohttp的包装器,通过HTTP暴露GraphQL APIs。 +* [tartiflette-asgi](https://github.com/tartiflette/tartiflette-asgi/) - Tartiflette GraphQL引擎的ASGI支持。 +* [tartiflette](https://tartiflette.io) - 适用于Python 3.6+和asyncio的SDL-first GraphQL引擎实现。 + ## 游戏开发(Game Development) From 0b72e9f1776eced1ded90f67474f5f8d68511915 Mon Sep 17 00:00:00 2001 From: china-testing Date: Sat, 18 Feb 2023 15:35:18 +0800 Subject: [PATCH 122/122] Add transfer info --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 14bc74f..33f9529 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ +逐步迁移到新仓库: [python_cn_resouce](https://github.com/china-testing/python_cn_resouce) + + python测试开发钉钉群:21745728,目前800多人,另有几千人的python测试开发微信群,可联系 钉钉或微信号 pythontesting 加群(备注:python)! * [国学 中医 历史等社科类书籍下载](https://github.com/china-testing/python-api-tesing/blob/master/society_books.md)

>kcx^M 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