This commit is contained in:
512song committed 2024-08-28 22:46:30 +08:00
1 parent 11a1e51802
commit 724bf28fbf
12 files changed
+708 -446

No files matched your search

+147 -1
View File
@@ -92,6 +92,52 @@
"print('ok')"
]
},
{
"cell_type": "markdown",
"id": "691cbb33-47df-4235-8e20-78fb1b5aafc0",
"metadata": {},
"source": [
"## 转换人员信息"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "be91abd1-4f95-4d82-9adb-4a38464a0f0e",
"metadata": {
"execution": {
"iopub.execute_input": "2024-08-11T10:46:44.484824Z",
"iopub.status.busy": "2024-08-11T10:46:44.484083Z",
"iopub.status.idle": "2024-08-11T10:46:44.496331Z",
"shell.execute_reply": "2024-08-11T10:46:44.495225Z",
"shell.execute_reply.started": "2024-08-11T10:46:44.484756Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"12\n"
]
}
],
"source": [
"import json\n",
"\n",
"filename = 'data/世纪花园基础数据240808.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"\n",
"dict2 = {}\n",
"for k, v in dict1.items():\n",
" dict1[k]['phone'] = str(k)\n",
"\n",
"with open(filename,'w') as fl:\n",
" json.dump(dict1, fl, ensure_ascii=False) \n",
"print(len(dict1))"
]
},
{
"cell_type": "markdown",
"id": "0dc90cf8-0a51-49ab-8f93-81acfd359e63",
@@ -492,6 +538,106 @@
" "
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "563d553e-1629-458b-ad03-4abfeb9fbc7f",
"metadata": {
"execution": {
"iopub.execute_input": "2024-08-07T23:49:52.126604Z",
"iopub.status.busy": "2024-08-07T23:49:52.125976Z",
"iopub.status.idle": "2024-08-07T23:49:52.148956Z",
"shell.execute_reply": "2024-08-07T23:49:52.148516Z",
"shell.execute_reply.started": "2024-08-07T23:49:52.126549Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"12\n"
]
}
],
"source": [
"import json\n",
"import datetime\n",
"import csv\n",
"\n",
"list1 = []\n",
"filename = 'data/Survey_20240808.csv'\n",
"with open(filename,'r',newline='') as csv_file:\n",
" fl = csv.reader(csv_file,delimiter=',')\n",
" header = next(fl) \n",
" for line in fl:\n",
" #line = re.sub('[\\r\\n\\f ]{1,}', '', line)\n",
" list1.append(line)\n",
"#print(list1)\n",
"list3 = []\n",
"dict1 = {}\n",
"bh = 1\n",
"for item in list1:\n",
" phone = item[1]\n",
" content = json.loads(item[5])\n",
" \n",
" name = content['name']\n",
" sex = content['gender']\n",
" birth = content['birth']\n",
" unit = content['unit']\n",
" del content['name']\n",
" del content['gender']\n",
" del content['birth']\n",
" del content['unit'] \n",
" for k, v in content.items(): \n",
" if 'O' in k:\n",
" age = 'O'\n",
" psy =[]\n",
" for i in range(1,31):\n",
" m_key = 'q'+str(i)+'O'\n",
" psy.append(content[m_key])\n",
" if 'M' in k:\n",
" psy =[]\n",
" age = 'M'\n",
" for i in range(1,48):\n",
" m_key = 'q'+str(i)+'M'\n",
" psy.append(content[m_key])\n",
" if 'qv' in k:\n",
" spine =[]\n",
" for i in range(1,27):\n",
" m_key = 'qv'+str(i)\n",
" if m_key in content.keys():\n",
" spine.append(content[m_key])\n",
" else:\n",
" spine.append(0)\n",
" if 'v' in k:\n",
" tcm = []\n",
" for i in range(1,61):\n",
" m_key = 'q'+str(i)\n",
" if m_key in content.keys():\n",
" tcm.append(content[m_key])\n",
" else:\n",
" tcm.append(0)\n",
" dict1.setdefault(phone,{})\n",
" \n",
" dict1[phone]['name'] = name\n",
" dict1[phone]['sex'] = sex\n",
" dict1[phone]['birth'] = birth\n",
" dict1[phone]['age'] = age\n",
" dict1[phone]['unit'] = unit\n",
" dict1[phone]['psy'] = psy\n",
" dict1[phone]['spine'] = spine\n",
" dict1[phone]['tcm'] = tcm\n",
" \n",
" \n",
" #list3.append(list2)\n",
"filename = 'data/世纪花园基础数据240808.json'\n",
"\n",
"with open(filename,'w') as fl:\n",
" json.dump(dict1, fl, ensure_ascii=False) \n",
"print(len(dict1))"
]
},
{
"cell_type": "markdown",
"id": "5ab7d644-c90a-4877-9abf-6d4bd88ef3ef",
@@ -633,7 +779,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
"version": "3.12.3"
}
},
"nbformat": 4,
+124 -139
View File
@@ -10,16 +10,9 @@
},
{
"cell_type": "code",
"execution_count": 50,
"execution_count": null,
"id": "360f0a97-d73d-43f3-9f7a-0f9582103c82",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-12T02:10:05.405006Z",
"iopub.status.busy": "2024-07-12T02:10:05.404238Z",
"iopub.status.idle": "2024-07-12T02:10:05.421154Z",
"shell.execute_reply": "2024-07-12T02:10:05.420149Z",
"shell.execute_reply.started": "2024-07-12T02:10:05.404936Z"
},
"tags": []
},
"outputs": [],
@@ -30,8 +23,8 @@
"mydb = myclient[\"baogao\"]\n",
"mycol = mydb[\"place\"]\n",
"\n",
"place_id = 496534\n",
"place_code = \"12\"\n",
"place_id = 698465\n",
"place_code = \"06\"\n",
"dw_name = \"天宫院社区\"\n",
"dw_jc = \"天宫院社区\"\n",
"myquery = { \"id\": place_id }\n",
@@ -53,15 +46,15 @@
},
{
"cell_type": "code",
"execution_count": 52,
"execution_count": 11,
"id": "6ce2cbc7-435a-461c-bdb8-abd9a6962fbc",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-12T02:14:38.695650Z",
"iopub.status.busy": "2024-07-12T02:14:38.694885Z",
"iopub.status.idle": "2024-07-12T02:14:38.722206Z",
"shell.execute_reply": "2024-07-12T02:14:38.721109Z",
"shell.execute_reply.started": "2024-07-12T02:14:38.695579Z"
"iopub.execute_input": "2024-08-11T11:24:39.665184Z",
"iopub.status.busy": "2024-08-11T11:24:39.664256Z",
"iopub.status.idle": "2024-08-11T11:24:39.691000Z",
"shell.execute_reply": "2024-08-11T11:24:39.690127Z",
"shell.execute_reply.started": "2024-08-11T11:24:39.665085Z"
}
},
"outputs": [
@@ -86,10 +79,10 @@
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
"mydb = myclient[\"baogao\"]\n",
"\n",
"place_id = 496534\n",
"place_code = \"12\"\n",
"dw_name = \"天宫院社区\"\n",
"dw_jc = \"天宫院社区\"\n",
"place_id = 698465\n",
"place_code = \"06\"\n",
"dw_name = \"淄博积家村\"\n",
"dw_jc = \"淄博积家村\"\n",
"fi_path = '/home/songyi/python/mycrm/flask/pdf/files'\n",
"fls = glob.glob(f'{fi_path}/{str(place_id)}/*.pdf')\n",
"\n",
@@ -107,7 +100,7 @@
"\n",
"i = 0\n",
"while i < len(fls):\n",
" code = random.sample(code_list,3) #随机取4位数\n",
" code = random.sample(code_list,3) #随机取3位数\n",
" code_num = ''.join(code) \n",
" if place_code+code_num not in list1 and place_code+code_num not in list2:\n",
" list1.append(place_code+code_num)\n",
@@ -120,7 +113,7 @@
" #fi_name =Path(fn).stem\n",
" code = int(fi_name)\n",
" dxm = list1[i]\n",
" dict2 = {'place_id':place_id,'code':dxm,'fn':Path(fn).name,'rq':'20240622'}\n",
" dict2 = {'place_id':place_id,'code':dxm,'fn':Path(fn).name,'rq':'20240811'}\n",
" list2.append(dict2)\n",
" i +=1\n",
"x = mycol.insert_many(list2)\n",
@@ -177,15 +170,15 @@
},
{
"cell_type": "code",
"execution_count": 55,
"execution_count": 12,
"id": "5f665c0f-8d30-4759-b7f8-fb7e13b98efa",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-12T02:22:32.688999Z",
"iopub.status.busy": "2024-07-12T02:22:32.688234Z",
"iopub.status.idle": "2024-07-12T02:22:32.714379Z",
"shell.execute_reply": "2024-07-12T02:22:32.713270Z",
"shell.execute_reply.started": "2024-07-12T02:22:32.688928Z"
"iopub.execute_input": "2024-08-11T11:26:41.537017Z",
"iopub.status.busy": "2024-08-11T11:26:41.536326Z",
"iopub.status.idle": "2024-08-11T11:26:41.562731Z",
"shell.execute_reply": "2024-08-11T11:26:41.561622Z",
"shell.execute_reply.started": "2024-08-11T11:26:41.536952Z"
},
"tags": []
},
@@ -194,28 +187,44 @@
"name": "stdout",
"output_type": "stream",
"text": [
"118 no phone\n",
"1 17692029838 0131-陈女士.pdf\n",
"2 13126853113 0130-徐女士.pdf\n",
"3 18612722507 0025-孟女士.pdf\n",
"4 18210976084 0078-朱女士.pdf\n",
"5 13521767089 0039-韩先生.pdf\n",
"6 15829199503 0128-张女士.pdf\n",
"7 13552463605 0041-朱女士.pdf\n",
"8 13381478769 0132-梁先生.pdf\n",
"9 18618393655 0094-谢先生.pdf\n",
"10 13717668119 0093-李女士.pdf\n",
"11 13366130427 0044-星先生.pdf\n",
"12 15532789326 0102-王先生.pdf\n",
"13 18141916681 0126-马女士.pdf\n",
"14 13261687266 0129-薛女士.pdf\n",
"15 13019252687 0037-张女士.pdf\n",
"16 13522476263 0007-李女士.pdf\n",
"17 13681204538 0038-路女士.pdf\n",
"18 13611211739 0124-苗女士.pdf\n",
"19 13716042706 0096-薛女士.pdf\n",
"20 13716323886 0040-杨女士.pdf\n",
"21 13464928996 0083-张先生.pdf\n"
"5 no phone\n",
"22 no phone\n",
"19 no phone\n",
"38 no phone\n",
"25 no phone\n",
"6 no phone\n",
"8 no phone\n",
"26 no phone\n",
"15 no phone\n",
"13 no phone\n",
"20 no phone\n",
"23 no phone\n",
"27 no phone\n",
"10 no phone\n",
"21 no phone\n",
"3 no phone\n",
"30 no phone\n",
"11 no phone\n",
"14 no phone\n",
"24 no phone\n",
"1 15153309038 9-曹秀芹.pdf\n",
"2 13573332133 17-段玉华.pdf\n",
"3 13964491825 7-韩美华.pdf\n",
"4 15553344004 1-张爱英.pdf\n",
"5 15853389189 36-袁会富.pdf\n",
"6 15069350919 16-王芹英.pdf\n",
"7 15165846001 2-张俊华.pdf\n",
"8 13070650793 18-肖翠花.pdf\n",
"9 13455364491 35-王霞.pdf\n",
"10 15853380767 28-肖爱英.pdf\n",
"11 13646430765 29-梁桂岭.pdf\n",
"12 13053316892 12-孙宗玲.pdf\n",
"13 13287885248 31-杜婷.pdf\n",
"14 13153385772 32-崔杰.pdf\n",
"15 15169224472 33-姚桂银.pdf\n",
"16 13583398468 4-尚永.pdf\n",
"17 18653305998 37-李琳.pdf\n",
"18 13869390557 34-徐爱锋.pdf\n"
]
}
],
@@ -232,13 +241,13 @@
"mydb = myclient[\"baogao\"]\n",
"mycol = mydb[\"pdf\"]\n",
"\n",
"dw_jc = \"天宫院社区测试者\"\n",
"filename = 'data/天宫院街道2024.json'\n",
"dw_jc = \"淄博积家村测试者\"\n",
"filename = 'data/积家基础数据2408.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl) \n",
"dict2 = {}\n",
"#place_id = 571315\n",
"myquery = { \"place_id\": place_id }\n",
"myquery = { \"place_id\": place_id,\"rq\":'20240811' }\n",
"for x in mycol.find(myquery,{ \"_id\": 0, \"place_id\": 0}):\n",
" code = int(x['fn'].split('-')[0])\n",
" if str(code) in dict1.keys() and 'phone' in dict1[str(code)].keys():\n",
@@ -293,15 +302,15 @@
},
{
"cell_type": "code",
"execution_count": 56,
"execution_count": 13,
"id": "4b2b5d76-665f-4dfe-bbd3-5c80abd8c3e3",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-12T02:23:52.611111Z",
"iopub.status.busy": "2024-07-12T02:23:52.610366Z",
"iopub.status.idle": "2024-07-12T02:23:57.139855Z",
"shell.execute_reply": "2024-07-12T02:23:57.138449Z",
"shell.execute_reply.started": "2024-07-12T02:23:52.611041Z"
"iopub.execute_input": "2024-08-11T11:28:21.443578Z",
"iopub.status.busy": "2024-08-11T11:28:21.442841Z",
"iopub.status.idle": "2024-08-11T11:28:25.277992Z",
"shell.execute_reply": "2024-08-11T11:28:25.276474Z",
"shell.execute_reply.started": "2024-08-11T11:28:21.443507Z"
},
"tags": []
},
@@ -311,27 +320,43 @@
"output_type": "stream",
"text": [
"no phone\n",
"17692029838 send success\n",
"13126853113 send success\n",
"18612722507 send success\n",
"18210976084 send success\n",
"13521767089 send success\n",
"15829199503 send success\n",
"13552463605 send success\n",
"13381478769 send success\n",
"18618393655 send success\n",
"13717668119 send success\n",
"13366130427 send success\n",
"15532789326 send success\n",
"18141916681 send success\n",
"13261687266 send success\n",
"13019252687 send success\n",
"13522476263 send success\n",
"13681204538 send success\n",
"13611211739 send success\n",
"13716042706 send success\n",
"13716323886 send success\n",
"13464928996 send success\n"
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"no phone\n",
"15153309038 send success\n",
"13573332133 send success\n",
"13964491825 send success\n",
"15553344004 send success\n",
"15853389189 send success\n",
"15069350919 send success\n",
"15165846001 send success\n",
"13070650793 send success\n",
"13455364491 send success\n",
"15853380767 send success\n",
"13646430765 send success\n",
"13053316892 send success\n",
"13287885248 send success\n",
"13153385772 send success\n",
"15169224472 send success\n",
"13583398468 send success\n",
"18653305998 send success\n",
"13869390557 send success\n"
]
}
],
@@ -348,12 +373,13 @@
"mydb = myclient[\"baogao\"]\n",
"mycol = mydb[\"pdf\"]\n",
"\n",
"filename = 'data/天宫院街道2024.json'\n",
"dw_jc = \"淄博积家村测试者\"\n",
"filename = 'data/积家基础数据2408.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl) \n",
"dict2 = {}\n",
"#place_id = 571315\n",
"myquery = { \"place_id\": place_id }\n",
"myquery = { \"place_id\": place_id,\"rq\":'20240811' }\n",
"for x in mycol.find(myquery,{ \"_id\": 0, \"place_id\": 0}):\n",
" code = int(x['fn'].split('-')[0])\n",
" if str(code) in dict1.keys() and 'phone' in dict1[str(code)].keys():\n",
@@ -361,7 +387,7 @@
" else:\n",
" print('no phone')\n",
"#print(dict2)\n",
"dw_jc = \"天宫院社区测试者\"\n",
"dw_jc = \"世纪花园测试者\"\n",
"#dict2 = {375: {'phone': '13793180751', 'code': '0379208'}}\n",
"for k, v in dict2.items():\n",
" phone = '+86'+v['phone']\n",
@@ -417,15 +443,15 @@
},
{
"cell_type": "code",
"execution_count": 54,
"execution_count": 9,
"id": "25a269c3-758f-4e79-ae6d-a6e6f161d64b",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-12T02:20:13.833627Z",
"iopub.status.busy": "2024-07-12T02:20:13.832897Z",
"iopub.status.idle": "2024-07-12T02:20:14.097306Z",
"shell.execute_reply": "2024-07-12T02:20:14.095871Z",
"shell.execute_reply.started": "2024-07-12T02:20:13.833565Z"
"iopub.execute_input": "2024-08-11T10:49:44.708154Z",
"iopub.status.busy": "2024-08-11T10:49:44.707426Z",
"iopub.status.idle": "2024-08-11T10:49:44.956435Z",
"shell.execute_reply": "2024-08-11T10:49:44.954940Z",
"shell.execute_reply.started": "2024-08-11T10:49:44.708083Z"
},
"tags": []
},
@@ -434,7 +460,6 @@
"name": "stdout",
"output_type": "stream",
"text": [
"no phone\n",
"+8613793180751 send success\n"
]
}
@@ -452,12 +477,12 @@
"mydb = myclient[\"baogao\"]\n",
"mycol = mydb[\"pdf\"]\n",
"\n",
"filename = 'data/天宫院街道2024.json'\n",
"filename = 'data/世纪花园基础数据240808.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl) \n",
"dict2 = {}\n",
"\n",
"myquery = { \"place_id\": place_id }\n",
"#place_id = 571315\n",
"myquery = { \"place_id\": place_id,\"rq\":'20240811' }\n",
"for x in mycol.find(myquery,{ \"_id\": 0, \"place_id\": 0}):\n",
" code = int(x['fn'].split('-')[0])\n",
" if str(code) in dict1.keys() and 'phone' in dict1[str(code)].keys():\n",
@@ -465,10 +490,10 @@
" else:\n",
" print('no phone')\n",
"#print(dict2)\n",
"dw_jc = \"天宫院社区\"\n",
"dw_jc = \"世纪花园测试者\"\n",
"\n",
"phone = '+86'+'13793180751'\n",
"yzm = '12164'\n",
"yzm = '05403'\n",
"try: \n",
" secretId = \"AKID22rVyvSqbikXFFvav31ykc9YmqjN6KYc\"\n",
" secretKey = \"51XVL1YxDKI6mJh8au6DDuTskS1RhwJX\"\n",
@@ -545,34 +570,12 @@
},
{
"cell_type": "code",
"execution_count": 57,
"execution_count": null,
"id": "411e89ed-8bb2-478b-b180-52188f800adc",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-12T02:30:44.525202Z",
"iopub.status.busy": "2024-07-12T02:30:44.524449Z",
"iopub.status.idle": "2024-07-12T02:30:44.747772Z",
"shell.execute_reply": "2024-07-12T02:30:44.746311Z",
"shell.execute_reply.started": "2024-07-12T02:30:44.525114Z"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"SendStatusStatistics\": {\n",
" \"FeeCount\": 120,\n",
" \"RequestCount\": 120,\n",
" \"RequestSuccessCount\": 120\n",
" },\n",
" \"RequestId\": \"6324eb3d-4a13-46ff-b555-c4e815f89f1f\"\n",
"}\n"
]
}
],
"outputs": [],
"source": [
"from tencentcloud.common import credential\n",
"from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException\n",
@@ -633,30 +636,12 @@
},
{
"cell_type": "code",
"execution_count": 58,
"execution_count": null,
"id": "50183bba-2f9d-4003-98a7-0ecda96670ef",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-12T02:30:54.613078Z",
"iopub.status.busy": "2024-07-12T02:30:54.612334Z",
"iopub.status.idle": "2024-07-12T02:30:54.837767Z",
"shell.execute_reply": "2024-07-12T02:30:54.836760Z",
"shell.execute_reply.started": "2024-07-12T02:30:54.613006Z"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"PullSmsSendStatusSet\": [],\n",
" \"RequestId\": \"55765a6f-95a1-4c79-b55b-3fd3521df119\"\n",
"}\n"
]
}
],
"outputs": [],
"source": [
"from tencentcloud.common import credential\n",
"from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException\n",
+73 -7
View File
@@ -506,15 +506,15 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 17,
"id": "a51a346c-8a3a-425c-be76-940f11c2e1ab",
"metadata": {
"execution": {
"iopub.execute_input": "2024-08-03T14:02:17.514754Z",
"iopub.status.busy": "2024-08-03T14:02:17.514034Z",
"iopub.status.idle": "2024-08-03T14:02:17.581525Z",
"shell.execute_reply": "2024-08-03T14:02:17.580974Z",
"shell.execute_reply.started": "2024-08-03T14:02:17.514688Z"
"iopub.execute_input": "2024-08-11T11:10:50.265674Z",
"iopub.status.busy": "2024-08-11T11:10:50.265079Z",
"iopub.status.idle": "2024-08-11T11:10:50.339113Z",
"shell.execute_reply": "2024-08-11T11:10:50.338550Z",
"shell.execute_reply.started": "2024-08-11T11:10:50.265618Z"
}
},
"outputs": [
@@ -585,12 +585,78 @@
" dict1[bh]['name'] = name\n",
" dict1[bh]['sex'] = sex\n",
" dict1[bh]['age'] = age\n",
" dict1[bh]['phone'] = phone\n",
" dict1[bh]['psy'] = psy\n",
" dict1[bh]['tcm'] = tcm\n",
" dict1[bh]['spine'] = spine\n",
" bh += 1 \n",
" #list3.append(list2)\n",
"filename = 'data/积家基础数据240801.json'\n",
"filename = 'data/积家基础数据240811.json'\n",
"\n",
"with open(filename,'w') as fl:\n",
" json.dump(dict1, fl, ensure_ascii=False) \n",
"print(len(dict1))"
]
},
{
"cell_type": "markdown",
"id": "ca5240cb-4ae1-4c40-ad7a-40b620dcf072",
"metadata": {},
"source": [
"## 清理无手机号码人员"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "8a339d2f-0869-45c8-93e6-79bd6ed0e86f",
"metadata": {
"execution": {
"iopub.execute_input": "2024-08-11T11:22:06.868752Z",
"iopub.status.busy": "2024-08-11T11:22:06.868034Z",
"iopub.status.idle": "2024-08-11T11:22:06.881380Z",
"shell.execute_reply": "2024-08-11T11:22:06.880194Z",
"shell.execute_reply.started": "2024-08-11T11:22:06.868690Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n",
"5\n",
"6\n",
"8\n",
"10\n",
"11\n",
"13\n",
"14\n",
"15\n",
"19\n",
"20\n",
"21\n",
"22\n",
"23\n",
"24\n",
"25\n",
"26\n",
"27\n",
"30\n",
"38\n",
"38\n"
]
}
],
"source": [
"filename = 'data/积家基础数据240811.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl) \n",
"for k,v in dict1.items():\n",
" if v['phone'] =='18801062497':\n",
" del v['phone']\n",
" print(k)\n",
"filename = 'data/积家基础数据2408.json'\n",
"\n",
"with open(filename,'w') as fl:\n",
" json.dump(dict1, fl, ensure_ascii=False) \n",
File diff suppressed because it is too large. Load diff
+2 -2
View File
@@ -101,7 +101,7 @@
第二图左右对峙之形势,黑先当然以拆1位为最大点。设以甲位为最大点,意即黑必占1位,方有阻白略地之效;反之,白必据甲位,乃收夺黑根地之功。此等处出入颇大,每能关系全局之成败。
兹再就第三图加以说明,用伸前图未尽之意。
本退当初黑白同型,分据四隅,此时黑1所拆之位置,前后都有拆三之余裕,当然为最大之点,白2由右下角之形势视之,也是最大点,黑3亦为右上隅一关拆至上边之最大点,白4与黑1同,前后都有争拆余地,故上举之黑1、白2、黑3、白4各点,俱属局中第一最大之点。
尚有黑5.白6两据点,此时堪称为第二最大点,因局面推移,好的据点逐一减少,便不得不降格而求其次。于此又可知局势之蜕化,最大点之位置亦有多少变更,惟其大体之意义与着点,度已能依此推求得之。
尚有黑5、白6两据点,此时堪称为第二最大点,因局面推移,好的据点逐一减少,便不得不降格而求其次。于此又可知局势之蜕化,最大点之位置亦有多少变更,惟其大体之意义与着点,度已能依此推求得之。
(七)不偏于攻不偏于守,能攻守兼备者,为最良着。
此亦初学者常犯之弊病,攻则偏于攻,守则偏于守,总难兼顾并筹。
第一图之黑1与第二图之黑1,同为防守角隅之着,何以言之?盖第一图之黑1,于保守自己之领域外,尚含攻白孤子之意义;第二图之黑1,则除保守自己之领域外,毫无他种之价值,因左边白棋早已占得拆二,不复受黑1之威胁也。故第一图之黑1,是攻守兼备之着,其着意点可为模范,学者宜常于此等处多多六一,俾可革除偏一之手法。
@@ -214,7 +214,7 @@
第一图表示拆之原则,上边黑白右左对峙之形势,黑若先拆,则甲位不如1位。现试依去角四五路之黑子,划一直线观之,则甲方不过在第四线内,故其威力所及之范围,亦只拆四为止,一方则在第五线上,所以威力即可伸展至拆五,其间势力之差,竞不可同日而语。
图中点线,固属假定,然将来却有取地之可能,故即使去角黑四五路之子改在乙位,而此时之拆手,亦仍以1位为主。
反之,在此形势下,白若先拆,则与其自左上隅一关拆至甲位,亦不如从右下隅大飞拆至1位,为最大之点。
再就应用图例而论,如第二图白从边中拆至1为,其次即有飞侵甲位之利,又可于乙位觑,借此活角,故堪称为甚佳之拆手。
再就应用图例而论,如第二图白从边中拆至1位,其次即有飞侵甲位之利,又可于乙位觑,借此活角,故堪称为甚佳之拆手。
但如第三图,白对于黑小飞之形势,若仍复拆至1为,则黑即可不应,白亦无施展第二手之余地,故白此拆之意义,只在拓地,此外殊鲜何等之价值。
以第二图与第三图相较,一见即能判其优劣,故诚须如已前所述,下子必须筹算以后之效果,若仅顾目前,必无成功之望,所以除逢觑则粘、逢压则行之极紧急局势外,若思于一方面活动,同时必须考虑到此后之运用。
(二十六)飞压敌棋,必以可拆可攻为必要条件。
+6 -6
View File
@@ -7,7 +7,7 @@
故兹欲阐述权谋之要谛,仍须一一依基本起手式为圭臬。盖弈者必须熟此,然后始能于其间捉住机微,而生变化。因是不问所谋之成与不成,亦决不失却自己之立足点。如此之棋,方得谓之真正的权谋。编者特将此项独立一栏,盖欲说明权谋之演变,皆有所本,使初学知其原委,有所惊惕,而勿滥用也。
#### 受子之部
第一图 白1至黑8为,普通倚盖起手式之一型,已见起手式之分类应用中,故关于起手方面之说明,兹不复赘,然因以下各图之变化,皆由此而生,故复揭示其原型,以便参考。
第一图 白1至黑8,为普通倚盖起手式之一型,已见起手式之分类应用中,故关于起手方面之说明,兹不复赘,然因以下各图之变化,皆由此而生,故复揭示其原型,以便参考。
第二图 即由前图黑4起变化。黑4连绰意,欲造成自白5至13之交换,然后可用14之断,拟将白子悉数捕获。其中黑22之虎甚为要紧,但却非常容易错过。其实当初黑4正须算到有此好着,方能成立也。
白23绰劣,致陷黑术中。24以后步步受逼,穷于应付,终罹征杀之局。
其中黑32黏亦是好着,忌41位渡,盖恐白提,黑赶,白黏后,黑必于乙位拦,此时白先打,然后再一虎一立,便先手做成持局。
@@ -37,7 +37,7 @@
黑18之虎,亦此际之通型。如白17改于甲位断,则经黑乙,白18,黑丙,白丁,黑戊,舍弃14一着,而掣肘白1之行动,则其后关于右边之发展,黑占有绝对的优势。所以对于白3、白5之手段,黑若自图发展,必当依本图之着法。
其中白15倘改于16位断,则黑当于已位行,白庚位压,黑辛位再行,此时白如复于15位黏,则黑于十七位约,白3、5以下七子全灭。
第十四图 白7如前图绰,固属毫无结果,今改如本图长,然经黑8绰,以迄12白仍不利。其中黑8亦属好着。
./pic/151.jpg
第十五图 此本六子局,白1投时,黑2之镇,却非权谋变调,而是真正之好着。因此着对于边中坐子,实为极有效之策应也。
白3飞顶,黑4即行绰出,复用6与8之手段,亦此际适切之要着。至白9、黑10交换后,白仍不得不于11位长,此时黑即可于12位尖,白1、5两子便被弋获。追溯其源,因固全仗黑2镇之功也。
第十六图 黑10以前俱与前图相同,白11若改如本图飞,欲救助1、5两子,则黑当紧紧于12位约,将3以下之白子掣于黑手。
@@ -51,7 +51,7 @@
白11之绰,亦毫无疑义之着。若改甲位断,则黑提刧,白因别无劫材,祇得15位黏,于是黑12位行,白之棋势仍旧不振。
白甲位之断既不成立,故白11以至黑18可谓必然之应接。虽因此已使白得五空光景之实地,然黑外势雄厚,其将来之所得正未可限量,或更数倍于白也。
第廿图 白如前图之被封锁,则其发展完全受黑梏桎,究属难堪。故本图预先于7位长,试求其变其时,黑8必约,白9绰时,黑10亦可于20位约,然如图于10位双,亦殊不恶。白祇得运用11以迄23之手段求活,但以黑关得24后之形势观之,白仍不利。
./pic/154.jpg
第廿一图 自前图黑10起变化。假如黑照本图于10位约,则已后尚留白用手段之余地。故普通大都如前图于17位双,但10位之约,亦属相当严谨之好着。俟白13黏后,黑复于14位尖,舍弃一子,棋趣亦觉良佳。
此时白以己身之存亡所系,不得不于15位断,且必须运用以下至21之手段,盖舍此实无他法也。黑则于22位黏后,阵容亦非常整齐,且白棋尚未活净,此时若便脱先他投,则黑于甲位立,白却不能于乙位黏,故虽非所愿,亦祇得再补一着,如于丙位跳,则黑于丁位飞,益显得极大之优势矣。
第廿二图 以上各图,白3或于甲位顶,或于乙位顶,但其由此而生之种种变化,均非白之福利。故今拟再改于3位顶,然经黑4约,白5断,以至16结果,白之收获仅一小角,而外势全入黑手。综观以上各图之变化,对于白1投后,黑2用镇之效力,当已明了。
@@ -73,7 +73,7 @@
第廿九图 此亦旧谱也。白5尖亦好,若改十位约,则黑于5位夹,仍如前式矣。
黑仍于6位行,亦当然之着,以下至白11飞告一段落。黑虽得内外连络,而白3之处,却是挤眼,故论势黑仍不利。
第卅图 自前图白7起变化。白7位顶,亦极有趣味之应着。此时黑8绰,势所必然,先以安定角势。若改于9位打,则白8位立,经黑甲,白乙,黑丙,白13,形势于白亦甚不恶。黑14之绰非常要紧,若被白于其处一立,则黑子便无生路矣。以下迄黑20,中腹黑棋仍为浮子,白则此后之希望甚多。但黑6倘改于11位打,则经白丁,黑9,白8,黑甲,白戊,黑6,白己,黑庚,适成第廿六图之还原,于黑亦好。
./pic/159.jpg
#### 对子之部
一间夹第一图 迄白12,为基本起手式之一型。双方互角,已于前卷起手式之分类运用中说过,不再赘叙,惟以下各图之变化,均系由此演出,故再刻之,以明其本相。
同第二图 白10以前俱与前图相同,黑11若不于甲位打,而如本图跳出,欲援助黑3之子,则结果不免陷于白术中。
@@ -157,7 +157,7 @@
谚有云:棋错一着,满盘皆输。是诚经验之谈,甘苦之言,非深得其中三昧者,不能道也。故虽一子之微,亦极不可苟下,所谓惴惴小心,如临于谷,对局之际,自须态度谨严,时时省察,方能堂堂正正收终局之利也。
然初学辄皆随手而下,不思而应,往往于颇成问题之应着,甚或恶劣之着,亦漫不介意为之,虽反复再三,犹以为当然。如此而欲图棋艺之长进,诚如缘木求鱼,虽弈百局,亦断无寸进也。
本节选录一般人易犯之俗着,加以图解,俾明于某种场所,如何应接为有利,如何应接为无理,望学者能于其中发现平常无意识惯用之劣着,有所觉悟,徐徐打破宿昔之陋习,懂得綮肯切要之应法,舍曲就正,转入常轨。尤望能举一反三,洞悉其微,则自能推而运用于任何局面,不限于本书所举之图例矣。
第一图 本图原系受子局所成之形势,先是黑占四四路,白投三六路,黑应大飞,白复于上边九三路夹击,黑则于三四位(注:似应为路)立,以守角地,白则再于右边拆二。此时黑有余裕,当再于甲位备一着,以稳定角势,不则必须豫有被白如图侵入一位之准备。
第一图 本图原系受子局所成之形势,先是黑占四四路,白投三六路,黑应大飞,白复于上边九三路夹击,黑则于三四位(注:似应为路)立,以守角地,白则再于右边拆二。此时黑有余裕,当再于甲位备一着,以稳定角势,不则必须豫有被白如图侵入1位之准备。
白既侵入,则黑2约至白5绰,俱系当然之着,毋多辞费。而黑6如图中之着法,实为最劣之应手,然初学却当为之不以为怪。若问此际应如何为得宜,则黑6当于乙位实黏,乃是正着,使白不得不落后手于丙位补,此时黑可争先他投,或丁位顶,任其选择,权操在黑。今白7以后,黑尚须于戊位补,反落后手矣。
第二图 前图黑6之冲,何以为庸俗之着,观于上述说明,当已了然。兹再从另一方面之看法,以证前说。设如本图之局面,今白若复得于1位绰,则两黑子即陷于半包围形势中,其不利又何待言。故黑必须避免此种形势,然上图之结果,却正与本图相同,此固实际上屡屡遭遇者,不可不加注意。
@@ -509,7 +509,7 @@
第七图 本图亦对局上时常发现之形势,原属倚盖起手式变型之一。白1夹,黑2立防渡,乃当然之应手。白3觑时,黑4之夹,最为繁要,有此黑始能在死中求活。
此种手段,亦正适合死活之思考法,彼我着点之比较考查原则,请双方参照,当更易领会。白5曲,黑6约,白7绰时,黑8立亦为二一路妙着。若改于甲位约,则白8位打,黑乙位立,白便丙位断成劫。
第八图 本图外面已尽被白子包围,黑若疏忽,仍以为不补可活,而脱先他投,则到底难免被杀。盖此时白可袭击1位之要眼,以下演至13即成聚四。其中黑12若改投13,则白长12,亦成聚五杀。如当初黑2改投12,则经白5,黑4,白7,黑3,白10,黑甲,白6,黑10,白11,黑到底仍不免于全灭也。
./pic/244.jpg
第九图 此隅黑如先手欲活,当另求他法。黑一之关,实恶劣不能用,盖因白2冲,黑3约,白4觑,黑5又不得不黏,于是白6飞,即被渡去。至此黑即万事休矣,虽复于7位绰,经白8立下,亦有何用?又或黑7改于8位夹,然白可7位立,仍杀。
其中白6为黑之致命伤,然白若不解此要着,而改于甲位立,则黑7绰,白虽8立,黑仍可于乙位约,容易做活矣。然则临此配置,黑竟无法避免乎?却亦不然,请阅下图。
第十图 本图即黑棋求活之唯一方法。盖黑1之约,已将此角略成九方之形势,自后白无论如何试以袭击,亦断难无条件攻杀矣。例如白2位点,似乎左右可渡,然经黑3尖顶,先防止了一方,白4之时,复于5位斡,至白6、黑7交换而成劫争,可以索回相当之代价。与前图无条件被杀,固已相差遥远矣。
+3 -3
View File
@@ -221,7 +221,7 @@
故必须笃察敌方先手之性质,倘于自己之存活并无危害,则不妨放任之,而转向他处搜寻敌之弱点,加以逆袭,以作交换。然此事仅作空谈,恐难明了,兹就第十二图至十四图说明其应用,
第十二图 于此局面,假使白先开始侵分。自左下隅1位尖起,迄黑44止,则白地上边成廿一目,下边成廿三目,右边成十四目,左边成十九目,合计之共得七十七目。
黑地右上隅成十六目,左上隅与右下隅各十五目,左下隅十七目,合计共得六十三目。彼此比较,白胜十四目。此皆黑棋对于白之先手随处应接之故,致演成如斯之结果。
./pic/314.jpg
第十三图 兹即以前图之配置,改为黑先,试求其演变。自黑1尖起,至21,俱属先手之利,以白补24后之地域计算之:黑右上隅成十七目,左下隅成二十目,右下隅与左下隅各廿一目,合得七十九目;白地上边成十七目,下边成二十目,右边十目,左边十七目,合得六十四目。双方比较,黑胜十五目。前后两图相差之数竟若是之巨,盖亦因白棋对于黑之先手无一不应所致。
照此看来,此种局面岂非白先则白胜,黑先则黑胜,无可挽回?其实却未必然,盖此时尚有与敌交换先手之侵分战术,若能充分运用,其效率或竟有转败为胜之可能。
初学对于十二、十三两图何处可以不应,何处可以逆袭,观察必感困难,兹再用同一局面,示其要领。
@@ -395,7 +395,7 @@
此时白3绰出,原属欺着,但在受六、七子局中,盖亦不得已之事。若黑应法綮肯,如图出以2至6之应付,则其次白甲则黑乙,白乙则黑甲,亦决无吃亏之理,白此外亦无他术。
黑2之时,白若于5位斡,则黑于3位退,白如乙位黏,黑即甲位盘,等于上述之还原。若白1改于丙位侵,则黑丁位顶,亦属同样着法,白对此形势到底无染指余地。
第四图 前图白于第四线投分终难见效,故本图试于1位深入求其变化。此时黑2即于上顶,以下4、6、8着着紧逼,迄10,白仍破碎难为。又如白于甲位侵入,则黑乙位顶,结果相同。
./pic/351.jpg
第五图 同此配置。白如本图1位顶,则较前图自为复杂不易应付。此时黑2上约最为严正,白3祇得绰出,盖除此实无着法也。黑4乃断,白5立时,黑即6约,至7、9、11之际,虽似已得侵入黑地,然经黑12立后,白却无14位冲出之手段,祇得于13位黏,于是黑14盘渡,白即无隙可乘。且黑12改于甲位提,亦属不妨。
第六图 黑2约时,白3反绰亦属欺着,然多变化,却甚难应。黑4亦有于甲位约者,亦有于乙位黏者,然皆不如本图之实黏,可以减少纠纷。白5行时,黑6之觑亦此时要着,以下应接至10,黑上下连络,再无白用计余地矣。
@@ -502,7 +502,7 @@
第廿五图 此广大之白势,虽尚未稳固,但如任白再补一着,却顿成坚固之地域。故此时黑1之侵,实最切要,且上隅之黑势,已固若金汤,不但毫无后顾之忧,且与黑1相映,带造成无限威力,实有甲位狙击之可能。
白2阻黑于乙位或丙位拆,然容黑于3位关起。黑3颇稳,不独图逸出便利,且对上边白棋具侧面威胁之意,允属至当。若改甲位飞,虽亦要点,又必须斟酌四周环境,及征子关系,非可一概论矣。设于白征有利,则白可丁位跨顶,经黑戊,自己,黑庚,白即三位长出,是则黑反有相当危险之感。
第廿六图 同一配置。白2应时,黑3顶、5退均好。其后若果拆得7位,则在攻击进行中,已得十目光景之固定地域矣。
./pic/378.jpg
第廿七图 亦受子棋屡见之形势。黑1侵好,白2当然之应着,黑3、5连行,白祗得于6位挡,黑便在7位取得联络,收白一子,地域增加不少。
初学每不敢1位侵,而迳于7位冲,白5挡时,再甲位打,于是经白乙,黑丙,后手提一子,反予白以安定阵势之便宜。
第廿八图 同一配置。黑1侵后,白若于2位尖,则黑亦紧紧于3位尖,亦适切之着。白祇得4位约,此时黑便5位绰,仍可与下端取得联络;若白4改于5位退,则黑于4位行,此后经白甲,黑乙,白丙,黑丁,黑可纵横自如,白则上面两着已陷四面楚歌之境。故以白之立场言,必须于黑1未侵前,先在戊位关起,或己位守,或庚位长,豫图弥补。
+4 -33
View File
@@ -2,15 +2,11 @@
### 弃子
围棋十诀云:“舍小就大”,又曰:“弃子争先”,其意皆谓有时须利用弃子,换得便宜,盖亦作战上之一种策略也。高手每能用以开展棋势,初学常因对于所投之子着着不肯舍弃,终致陷局势于迟缓受亏。弃子之理,犹如牺牲小我,而成全大我。若以佛家的禅语来讲,那正是“大死一番,大活现成”之义。
然取舍之间,差数若大,果易分辨。倘差数极微,则鉴别殊难。譬如舍三取十,固人人知之,若数多至十余子,而相差又仅一子半子,且两者又不可兼得时,则必踌躇难决矣。昔贤虽有“三线以下,不妨舍弃两子;三线以上,虽失一子亦恶”之提示,但亦须参酌周围情势而定,并非绝对。兹随举普通图例若干则于后,以见一斑。
第一图 此为日常对局时之现成材料。临此局势。黑固当于甲位断。采用弃子之策若照图于一
位曲,3位飞,毕竟非常损失,且白尚有乙位冲断之利,黑防止为难。
第一图 此为日常对局时之现成材料。临此局势。黑固当于甲位断。采用弃子之策若照图于1位曲,3位飞,毕竟非常损失,且白尚有乙位冲断之利,黑防止为难。
第二图 即以前图之配置。黑先于1位断,白必2位打,黑再3位立,即是三线下舍弃两子之意。此时白祇有4位约,于是黑更5位断,再作牺牲,而以7、9、11缔成外部之坚壁,不但白子完全被封,且将来黑于甲位黏时,白尚须乙位收应,黑如再于丙位打,白又须丁位提。易言之,白于无形中,已失去甲位冲出之利。试将本图与前图相较,前者一味防守,尚不完全,本图则既成坚壁,角中又成无隙可乘之势。
其中黑5倘改于6位打,则经白5,黑11,虽亦无不可,惟总不若5断至11之着法更觉生动灵活。要之,黑必舍弃两子方得筑成整个之坚壁也。
第三图 本图系倚盖起手式所演成之一型。黑1之断,试探白之应对,白如2位打,黑照例于3位立,白4约时,黑5落得先打,复于7位曲,9位约,逼白8约,10打。
盖黑1、3、7之弃子,实为11夹击之准备工作。至此,白上边一子几成釜中之鱼,白如再于12位尖,希图遁出,黑可运用13至19之手段,白决无再生之望。其中黑19倘改于甲位黏,或乙位约,亦俱无不可。惟右边系白之势力,且黑三子已经被(注:缺字,似杀)
故亦别无何等着法。且目下黑仅舍弃三子,而捕获一方之白棋,双方利剩大小之差,固不可同日而语。
盖黑1、3、7之弃子,实为11夹击之准备工作。至此,白上边一子几成釜中之鱼,白如再于12位尖,希图遁出,黑可运用13至19之手段,白决无再生之望。其中黑19倘改于甲位黏,或乙位约,亦俱无不可。惟右边系白之势力,且黑三子已经被(注:缺字,似杀)故亦别无何等着法。且目下黑仅舍弃三子,而捕获一方之白棋,双方利剩大小之差,固不可同日而语。
第四图 白棋鉴于前图之失,故白2改从下面绰,以图打破黑之弃子作用,亦是一策。然经黑3、5连长,白2、4、6三子势非被压于第二线不可矣。此时黑为弥补甲之缺陷,却仍可运用7、9九之常套手段,就13后之形势观之,于黑亦并不坏。
第五图 本图亦实战谱上所得之材题。右边五白子已受包围,且濒于极度之危险状态,此时白欲求安定之道,唯有先于1位断,用弃子之法。白1既断,则当时黑除2位打外,实无他法,于是3立4约成必然。
斯时白5落得先打,更紧紧收7、9之利,逼黑10位提,然后于11位补,成极好之活局。要之,白弃两子而换得三着先手,不可谓非绝大之便宜,其中白3若迳于5位打,则黑于3位提,或11位刺,白总不能成为完全之活局矣。
@@ -173,7 +169,7 @@
第九图 临此形势,白若于左方1绰,3黏,则黑4不黏8位,而亦于右面4位绰,6位黏。于是白7、黑8交换,竟可则毫不损失。倘白1、3之时,黑慌忙于8位黏,则白再可于6位绰,黑甲位约,白4位黏,黑尚非乙位黏不可,白竟得双方均占先手绰黏之利,黑无形中损失四目。所以如图白1、3绰黏时,黑必须权衡轻重,在另一方面亦使用同等利害之绰黏,以作交换,而免损失。此亦可归功于两睨之着法。
第十图 本图甲乙两处都是后手两目,所以也可目为两睨之点。盖两睨之点,大概总是两处或四处之隅数,故皆可留待最后处置,而先争其他之先手。依上举各例,倘能会得两睨点之意义,则已不难在一切场面应用之而得其实效矣。。
./pic/436.jpg
### 务杀不顾
棋经云:“轻而贪者多丧”,又曰:“务杀而不顾者多败”,其意皆指一味贪杀,实属无益。棋评上常见“躁”及“轻率”等语句大概也是此意。这不但在初学者难以理解,即略有修养之人,亦鲜能会得,盖此纯系抽象术语。若问如何才是躁,又如何是轻率?虽专门家恐亦难作澈底的定义。此事大概皆由自身多年的体会得之,就随时随所显现之棋形,虽可凭直觉判为如何如何,却未必即能据以为不易之定理。是故若欲作一能使人十分满意之诠释,诚属难事。兹亦胪举图例若干幅,以供参考。至于举一反三之运用,祇得任各人自己的领会。
第一图 此系六子棋所生之形势。当白1镇以攻边中黑之坐子,黑自可于2位尖出。此时白若再连用3、5之封锁手段,有非取之不可之势,则便有务杀不顾之嫌,结局定必造成自己的破绽而已。
@@ -511,29 +507,4 @@
七、慎勿轻速
八、动须相应
九、彼强自保
十、势孤取和
十、势孤取和
+52 -36
View File
@@ -94,7 +94,7 @@
"\n",
"list1 = []\n",
"filepath = '文本文件/'\n",
"files = glob.glob(f'{filepath}*.txt')\n",
"files = glob.glob(f'{filepath}*.md')\n",
"for fn in files:\n",
" with open(fn, \"r\") as f:\n",
" data = f.readlines()\n",
@@ -108,32 +108,19 @@
},
{
"cell_type": "code",
"execution_count": 36,
"execution_count": null,
"id": "14696c7a-d44e-4c99-9d28-a810d991ed20",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-29T09:38:17.617646Z",
"iopub.status.busy": "2024-07-29T09:38:17.616877Z",
"iopub.status.idle": "2024-07-29T09:38:17.699602Z",
"shell.execute_reply": "2024-07-29T09:38:17.699000Z",
"shell.execute_reply.started": "2024-07-29T09:38:17.617576Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['10', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '11', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119', '12', '120', '121', '122', '123', '124', '125', '126', '127', '128', '129', '130', '131', '132', '133', '134', '135', '136', '137', '138', '139', '14', '140', '141', '142', '143', '144', '145', '146', '147', '148', '149', '15', '150', '151', '152', '153', '154', '155', '156', '157', '158', '159', '16', '160', '161', '162', '163', '164', '165', '166', '167', '168', '169', '17', '170', '171', '173', '174', '175', '176', '177', '178', '179', '18', '180', '181', '182', '183', '184', '185', '186', '187', '188', '189', '19', '190', '191', '192', '193', '195', '198', '2', '20', '200', '201', '203', '204', '209', '21', '212', '213', '214', '22', '221', '222', '227', '228', '23', '230', '232', '24', '242', '243', '245', '246', '248', '249', '25', '251', '254', '255', '26', '27', '276', '28', '29', '290', '293', '3', '30', '304', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '6', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '7', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '8', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '9', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99']\n"
]
}
],
"metadata": {},
"outputs": [],
"source": [
"import glob\n",
"import os,shutil\n",
"from pathlib import Path\n",
"import re\n",
"from docx import Document\n",
"import openpyxl\n",
"from docxtpl import DocxTemplate,InlineImage\n",
"from docx.shared import Mm\n",
"\n",
"def find_all_numbers(text):\n",
" return re.findall(r'\\d+', text)\n",
@@ -152,13 +139,16 @@
" result = pattern.sub(lambda x: f\"{{{{ img_{x.group(0)} }}}}\", text)\n",
" \n",
" return result\n",
"doc = Document()\n",
"#doc = Document()\n",
"\n",
"\n",
"list1 = []\n",
"filepath = '文本文件/'\n",
"files = glob.glob(f'{filepath}*.txt')\n",
"for fn in files:\n",
" p = Path(fn)\n",
" with open(fn, \"r\") as f:\n",
" list1 = []\n",
" doc = Document()\n",
" paragraph3 = doc.add_paragraph()\n",
" data = f.readlines()\n",
" for s in data:\n",
@@ -173,23 +163,27 @@
" list1.sort()\n",
" #paragraph3 = doc.add_paragraph()\n",
" paragraph3.add_run(ss.replace('\\r', ''))\n",
" \n",
"print(list1)\n",
"doc.save('槐荫堂9.docx')"
" print(p.stem)\n",
" print(list1)\n",
" if len(list1) >0:\n",
" #paragraph3 = doc.add_paragraph()\n",
" #paragraph3.add_run(ss.replace('\\r', ''))\n",
" doc.save(f'./templete/{p.stem}.docx')\n",
" dict1 = {}\n",
" tpl = DocxTemplate(f'./templete/{p.stem}.docx')\n",
" for item in list1:\n",
" dict1['img_'+str(item)] = InlineImage(tpl, image_descriptor=f'./img/{str(item)}.jpg',width=Mm(4))\n",
" tpl.render(dict1)\n",
" tpl.save(f'./docx/{p.stem}.docx')\n",
"#print(list1)\n",
"#doc.save('离垢居谈棋.docx')"
]
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": null,
"id": "8d3f1a7a-1322-48b5-9b14-c7ba8f38bacb",
"metadata": {
"execution": {
"iopub.execute_input": "2024-07-29T09:38:34.133722Z",
"iopub.status.busy": "2024-07-29T09:38:34.132997Z",
"iopub.status.idle": "2024-07-29T09:38:36.600350Z",
"shell.execute_reply": "2024-07-29T09:38:36.599803Z",
"shell.execute_reply.started": "2024-07-29T09:38:34.133659Z"
},
"tags": []
},
"outputs": [],
@@ -200,13 +194,13 @@
"\n",
"dict1 = {}\n",
"\n",
"tpl = DocxTemplate(\"槐荫堂9.docx\")\n",
"tpl = DocxTemplate(\"离垢居谈棋.docx\")\n",
"for item in list1: \n",
" dict1['img_'+str(item)] = InlineImage(tpl, image_descriptor=f'./img/{str(item)}.jpg',width=Mm(4))\n",
" dict1['img_'+str(item)] = InlineImage(tpl, image_descriptor=f'./img/黑先/{str(item)}.jpg',width=Mm(4))\n",
"#dict1['img_radar'] = InlineImage(tpl, image_descriptor=dict1['radar'])\n",
"\n",
"tpl.render(dict1)\n",
"tpl.save('槐荫堂第九卷.docx')"
"tpl.save('离垢居谈棋(黑先).docx')"
]
},
{
@@ -215,6 +209,28 @@
"id": "efc716f8-0ec7-4e0d-9960-676764965be4",
"metadata": {},
"outputs": [],
"source": [
"import openpyxl\n",
"from docxtpl import DocxTemplate,InlineImage\n",
"from docx.shared import Mm\n",
"\n",
"dict1 = {}\n",
"\n",
"tpl = DocxTemplate(\"离垢居谈棋.docx\")\n",
"for item in list1: \n",
" dict1['img_'+str(item)] = InlineImage(tpl, image_descriptor=f'./img/白先/{str(item)}.jpg',width=Mm(4))\n",
"#dict1['img_radar'] = InlineImage(tpl, image_descriptor=dict1['radar'])\n",
"\n",
"tpl.render(dict1)\n",
"tpl.save('离垢居谈棋(白先).docx')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fcfd6cab-d83f-4b79-9a0b-05570ca6cecb",
"metadata": {},
"outputs": [],
"source": []
}
],
@@ -654,7 +654,7 @@
"## 第十四局\n",
"盛大有 \n",
"汪汉年 \n",
"共二百六十六着 \n",
"共一百六十六着 \n",
"对子 \n",
"眉山墅隐 \n",
"\n",
@@ -701,7 +701,7 @@
"## 第十五局\n",
"汪汉年 \n",
"盛大有 \n",
"共二百七十三着 \n",
"共二百四十九着 \n",
"对子 \n",
"眉山墅隐 \n",
"\n",
@@ -997,7 +997,7 @@
"## 第二十二局\n",
"汪汉年 \n",
"程仲容 \n",
"共二百二十二四着 \n",
"共二百二十二着 \n",
"对子 \n",
"眉山墅隐 "
]
@@ -1016,14 +1016,16 @@
]
},
{
"cell_type": "markdown",
"id": "d6353fd4-2682-4c16-aaef-2fe58675a9f1",
"cell_type": "code",
"execution_count": null,
"id": "234f3dc7-81a7-4c3f-8800-fce3b9ced04b",
"metadata": {},
"outputs": [],
"source": [
"## 第二十四局\n",
"汪汉年 \n",
"程仲容 \n",
"共二百七十一四着 \n",
"共一百七十一四着 \n",
"对子 \n",
"眉山墅隐 "
]
@@ -1070,7 +1072,7 @@
"## 第二十六局\n",
"汪汉年 \n",
"程仲容 \n",
"共二百五四着 \n",
"共二百五着 \n",
"对子 \n",
"眉山墅隐 \n",
"\n",
@@ -3855,7 +3857,7 @@
"## 第二十九局\n",
"周东侯 \n",
"汪汉年 \n",
"共二百五十八着 \n",
"共一百五十八着 \n",
"眉山墅隐 \n",
"\n",
"7关,白虽拆三之地已坚然。\n",
@@ -4151,8 +4153,8 @@
"metadata": {},
"source": [
"## 第三十六局\n",
"汪汉年 \n",
"周东侯 \n",
"汪汉年 \n",
"共二百四十三着 \n",
"对子 \n",
"眉山墅隐 \n",
@@ -4208,8 +4210,8 @@
"metadata": {},
"source": [
"## 第三十七局\n",
"周东侯 \n",
"汪汉年 \n",
"周东侯 \n",
"共二百六十四着 \n",
"眉山墅隐 \n",
"\n",
@@ -4606,8 +4608,8 @@
"metadata": {},
"source": [
"## 第四十六局\n",
"周东侯 \n",
"盛大有 \n",
"周东侯 \n",
"共二百十八着 \n",
"对子 \n",
"眉山墅隐\n",
@@ -5664,7 +5666,7 @@
"李元兆 \n",
"共二百八十七着 \n",
"对子 \n",
"弈汇\n",
"弈彙\n",
"\n",
"7应32位关。 \n",
"8压,9不得不进角。 \n",
@@ -5702,7 +5704,7 @@
"周东侯 \n",
"共二百零五着 \n",
"对子 \n",
"弈汇\n",
"弈彙\n",
"\n",
"3逼关系旧习,当投拆三为正。 \n",
"6避大角围着法。 \n",
@@ -5917,7 +5919,7 @@
"周懒予 胜 \n",
"共二百零着 \n",
"对子 \n",
"弈汇\n",
"弈彙\n",
"\n",
"2应投三九两分为正。 \n",
"4当上角投九三。\n",
@@ -6043,7 +6045,7 @@
"## 第三局\n",
"周懒予 \n",
"盛大有 \n",
"共二百九十三着 \n",
"共二百七十五着 \n",
"对子 \n",
"不古编\n",
"\n",
@@ -6229,7 +6231,7 @@
"## 第十局\n",
"野雪 \n",
"周懒予 \n",
"共二百三十三着 \n",
"共二百三十五着 \n",
"对子 \n",
"周懒予围棋谱 \n",
"\n",
@@ -7464,7 +7466,7 @@
"## 第六十二局\n",
"周懒予 胜六子半 \n",
"汪汉年 \n",
"共一百八十五着 \n",
"共二百六十一着 \n",
"对子 \n",
"周懒予围棋谱 \n",
"\n"
@@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"id": "b13417e5-dd12-4332-bc3f-33a9a6008bfb",
"metadata": {},
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"# 槐荫堂钞存围棋谱 卷肆"
]
@@ -587,13 +589,43 @@
"source": [
"## 第二十局\n",
"周东侯 \n",
"黄月天 \n",
"黄龙士 \n",
"和 \n",
"共三百二十二着 \n",
"对子 \n",
"围棋近谱 \n",
"\n",
"11当12位碰为正。12至18争先亦是。20拆三当时。21可缓,当122位大飞,黑拆三尚须关补。27压、29扳活动。32不于106位打,防白113位打,黑107位提,白187位打,黑粘,白33位虎,黑34位长,白124位立,黑转局促。34不打亦是。35等着分角尚早,有38敲,外面便生出劫。41扳,将官子着尽,是当时习气。51若55位长,嫌机缓,姑扳以图变。52至62乘间攻角,不可缓。64必长,66、68有次序。72至78机法相生,纯乎自然。80接老当,胜242位长。81长,劲。93虎应,是。99接连三子,收101位先手断觑便宜。103因中间残损,紧逼黑边,补角顾腹,最为扼要。104扳,108反打,妙有成算。115因三子受逼,难于转身,用借引法兼可攻角。116顾角,任白扳接,合活得先,外势自固;若呆取三子,便无余味。117至145彼此稳惬。148收法紧。157大。170落得先手分腹。177、179尖断黑子要紧。186、188收得便宜。190必扳。195嵌法巧。200大。274官子粗,若于十二路补,便胜一子。\n",
"11当12位碰为正。\n",
"12至18争先亦是。\n",
"20拆三当时。\n",
"21可缓,当122位大飞,黑拆三尚须关补。\n",
"27压、29扳活动。\n",
"32不于106位打,防白113位打,黑107位提,白187位打,黑粘,白33位虎,黑34位长,白124位立,黑转局促。\n",
"34不打亦是。\n",
"35等着分角尚早,有38敲,外面便生出劫。\n",
"41扳,将官子着尽,是当时习气。\n",
"51若55位长,嫌机缓,姑扳以图变。\n",
"52至62乘间攻角,不可缓。\n",
"64必长,66、68有次序。\n",
"72至78机法相生,纯乎自然。\n",
"80接老当,胜242位长。\n",
"81长,劲。\n",
"93虎应,是。\n",
"99接连三子,收101位先手断觑便宜。\n",
"103因中间残损,紧逼黑边,补角顾腹,最为扼要。\n",
"104扳,108反打,妙有成算。\n",
"115因三子受逼,难于转身,用借引法兼可攻角。\n",
"116顾角,任白扳接,合活得先,外势自固;若呆取三子,便无余味。\n",
"117至145彼此稳惬。\n",
"148收法紧。\n",
"157大。\n",
"170落得先手分腹。\n",
"177、179尖断黑子要紧。\n",
"186、188收得便宜。\n",
"190必扳。\n",
"195嵌法巧。\n",
"200大。\n",
"274官子粗,若于十二路补,便胜一子。\n",
"国初时,名手如林,龙士年最幼,诸家遇之辄望风而靡,惟东侯刻意追新,喜出偏锋,屡战不屈。此局如春秋晋楚主盟,不相上下,可称劲敌。 \n",
"录《弈理析疑》吴修圃评"
]
@@ -636,8 +668,7 @@
"## 第二十三局\n",
"周东侯 \n",
"黄月天 \n",
"和 \n",
"共三百二十三着 \n",
"共二百二十三着 \n",
"对子 \n",
"围棋近谱 \n",
"\n",
@@ -654,7 +685,7 @@
"周东侯 \n",
"共二百六十八着 \n",
"对子 \n",
"兼山堂弈谱 \n",
"围棋近谱 \n",
"\n",
"\n"
]
@@ -807,7 +838,7 @@
"黄月天 胜 \n",
"共二百二十三着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"7应投三九,两分为正。\n",
"13飞胜拆。\n",
@@ -840,7 +871,7 @@
"黄月天 \n",
"共一百七十五着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"起手双飞,大紧,当66位拆三为正。\n",
"17不必,倘封角后,少一二路尖杀角之用,还当19位虎,25应,三七路粘。\n",
@@ -877,7 +908,7 @@
"周东侯 \n",
"共二百廿八着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"4至23双飞正应。\n",
"25粘胜封角。\n",
@@ -1911,7 +1942,7 @@
"黄月天 \n",
"共一百八十一着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"5当三九路拆二。7虽先手侵角,拆三究属空虚,黑或投拆三,或42位托,或44位碰,其权在黑。7还当55位关出为是。16投好。20当于24位压,拆二已实,何妨再实?29是,若仍旧二五路行,黑于156位逼矣。33当34位长。36粘,识局面。37不得不补。39大。51当52位转头。65扳有波澜。70扳、72打,使白无变。76至89彼此紧要。90点角,恰当95打。99长,扼要之着。102兼攻带补,是。115还当117位长,弃二子究伤实地。123连扳好。128有深意。129、131不得不尖。132至150一定之着。152落得打劫。172大极。官子彼此皆是。\n"
]
@@ -2279,7 +2310,7 @@
"寄闲斋 \n",
"\n",
"起至6着皆正。7双飞太早,当上角29位是。21虎、23亦宜94位虎,盖23既飞,21自不应虎,当在十三路拆三方得局面。今先虎后飞,以致前后皆不能关照。30侵角太强,当62位飞,否则平角83位侵为是。37当106位长,使黑子无腾挪。41关应活泼。51当于56位转头,先据要地,黑若不应,即转换亦不失便宜。53打,55粘,是,并可照应29一子。56不可缓。62必着。72、74先点后打,有次序。75不粘反打,是,且可制黑九三之子。81稳而大。83退,防黑子腾挪。86当99位关,乃含此图彼是甘心受逼矣。96不得不粘。101转头,是。105先手提一子大,先自活透兼攻他人。111妙极,黑如113位立,白先手收尽;112不得不退应,白连侵带补,好。119至125一定之着。126至147着法皆是。此后黑白官子皆细。此局黑子30位侵角太早,所以致败。经云:大局已定,然后侵分。信不诬也。 \n",
"弈汇评\n"
"弈彙评\n"
]
},
{
@@ -5457,7 +5488,7 @@
"梁魏今 \n",
"共一百七十二着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"\n",
"\n",
@@ -5476,7 +5507,7 @@
"程兰如 \n",
"共一百六十五着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"起手至15皆正。\n",
"16不应关,当于138位侵分。\n",
@@ -5721,7 +5752,7 @@
"74至90谋生局促,外势尽伤。\n",
"93粗率,当96位顶好。\n",
"100低,当102位托,白亦只得于101位转头,则黑于117位尖,较胜多矣。\n",
"111、1117寻劫,即乘100实行之病。\n",
"111、117寻劫,即乘100实行之病。\n",
"107当109位虎,黑不敢于141位行,恐白冲、扑,再二六路扳,黑一六路扳,白三八路提,黑打,白粘,黑一七路接,白107位做眼,黑接,白打,黑粘,白于127位扳,黑既不敢于一五路粘紧气,打劫则入角图活亦甚吃亏;若于107位冲,白粘,黑126位飞,白去角三二路尖,黑266位立,白五五路冲,黑不敢接,恐白于140位搪,黑二一路点,白五一路再搪,争先于128位搪下,任黑或平或立,边子图活则白先手封,外势既张,再于227位活,黑孤子殊费经营。黑惟有二二路补,则白提通三子,胜打劫远矣。\n",
"131、137吃二子通连,兼存一劫,老到。\n",
"170不必,当留为五五路吃二子之用。\n",
@@ -6487,7 +6518,7 @@
"潘星见 胜 \n",
"共二百十六着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"十三起手,究非局面之正,2应小铁网,是。\n",
"12不必用镇,当19位关。\n",
@@ -6513,7 +6544,7 @@
"潘星见 胜 \n",
"共二百四十二着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"12还当14位扳。\n",
"15当21位关,黑必于74位拆二,白再于22位拆三,方得局面之正。\n",
@@ -6539,7 +6570,7 @@
"任惠南 \n",
"共二百五十八着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"23用九五镇,得局面。\n",
"33虎弱,当73位夹角,再于83位长。\n",
@@ -8224,7 +8255,7 @@
"温佩良 \n",
"共二百六十六着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"\n",
"\n",
@@ -8233,7 +8264,7 @@
"陈天汉 \n",
"共二百二十七着 \n",
"对子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"\n",
"\n",
@@ -8396,7 +8427,7 @@
"144点、146关是。\n",
"152当上角五七位活角。\n",
"155扳,角子已失,此皆草率之故也。 \n",
"弈汇评 \n",
"弈彙评 \n",
"\n",
"\n",
"## 第七局 \n",
@@ -8449,7 +8480,7 @@
"吴来仪 \n",
"共二百二十二着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"\n",
"\n",
@@ -8719,7 +8750,7 @@
"姚文侯 胜 \n",
"共二百三十八着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"4着当于16位投空花角。\n",
"17是。\n",
@@ -8750,7 +8781,7 @@
"姚文侯 \n",
"共二百十九着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"17不于95位立,是。\n",
"28长有力。\n",
@@ -8787,7 +8818,7 @@
"姚文侯 \n",
"共二百三十八着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"起手双飞太紧。\n",
"22还当45位关,或27位拆。\n",
@@ -8823,7 +8854,7 @@
"娄子恩 \n",
"共二百六十七着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"6当198位拆二为正。\n",
"7当10位镇。\n",
@@ -8891,7 +8922,7 @@
"151于152位打便成劫杀。\n",
"155当159粘,今被158打,162成大块,得不偿失矣。 \n",
"乾隆丙辰,梁范弈于平湖张氏斋中,范始知名。观其着法纵横,然粗率出亦复不少,未几而成大家,殆天授也。 \n",
"弈汇评 \n",
"弈彙评 \n",
"\n",
"## 第四十七局 \n",
"梁会京 \n",
@@ -8997,7 +9028,7 @@
"藏念萱 \n",
"共二百七十九着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"\n",
"\n",
@@ -9006,7 +9037,7 @@
"藏念萱 \n",
"共一百九十八着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"13当14位投空花角。\n",
"15当入角三五路先碰,然后再于15位关。\n",
@@ -9031,7 +9062,7 @@
"吴莼圃 \n",
"共一百九十二着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"14当上角三七路飞。\n",
"16当20位压,凡遇双飞,角左右有拆三、拆四者,不可盖压,实边压拆二者,拆二已实,何妨再实。\n",
@@ -9064,7 +9095,7 @@
"谭揆士 胜 \n",
"共二百三十七着 \n",
"受二子 \n",
"弈汇 \n",
"弈彙 \n",
"\n",
"8当211位关。\n",
"12逼,非局面之正,当21位投,或177位投无忧角。\n",
@@ -3,9 +3,7 @@
{
"cell_type": "markdown",
"id": "be3571d5-60ff-43de-833a-21bb1fdc4b26",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"metadata": {},
"source": [
"# 槐荫堂钞存围棋谱 卷拾叁"
]
@@ -1342,9 +1340,7 @@
{
"cell_type": "markdown",
"id": "9bf94825-2cf6-4f49-8436-62a7739852f0",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"metadata": {},
"source": [
"# 槐荫堂钞存围棋谱 卷拾伍"
]
@@ -1790,7 +1786,7 @@
"46当49位长一着,相机而动,白两处尚虚,皆可生情。今断,动则反凑白实,不动则何必多此一断?\n",
"54必着。\n",
"55虽脱先,究竟不能执黑,当184位关,虽后手,尚多余意。\n",
"61欠细,当71位觑,黑72位应,白73位长,黑粘,再83位长,黑照应去角之子,白于62位扳封,如此白处处整齐,便可观(注:此处一字不清)于敌矣。\n",
"61欠细,当71位觑,黑72位应,白73位长,黑粘,再83位长,黑照应去角之子,白于62位扳封,如此白处处整齐,便可观衅于敌矣。\n",
"69不应长。\n",
"78断有成见。\n",
"97不敢粘,不得不虎。\n",