20 KiB
20 KiB
In [ ]:
import glob
import os,shutil
from pathlib import Path
filepath = 'img/白/'
files = glob.glob(f'{filepath}*.jpg')
for fn in files:
fi_name =Path(fn).stem
if int(fi_name) % 2 !=0:
shutil.copy(fn, './img')In [ ]:
import glob
import os,shutil
from pathlib import Path
filepath = 'img/黑/'
files = glob.glob(f'{filepath}*.jpg')
for fn in files:
fi_name =Path(fn).stem
if int(fi_name) % 2 ==0:
shutil.copy(fn, './img')In [ ]:
import glob
import os,shutil
from pathlib import Path
import re
def find_all_numbers(text):
return re.findall(r'\d+', text)
def replace_numbers(text):
pattern = r'\d+'
replacement = lambda x:'{{ '+ f'img_{x.group()}'+' }}'
modified_text = re.sub(pattern, replacement, text)
return modified_text
def replace_numbers_with_braces(text):
# 使用正则表达式查找连续的数字
pattern = re.compile(r'\d+')
# 使用re.sub()进行替换
result = pattern.sub(lambda x: f"{{{{ img_{x.group(0)} }}}}", text)
return result
list1 = []
filepath = '文本文件/'
files = glob.glob(f'{filepath}*.md')
for fn in files:
with open(fn, "r") as f:
data = f.readlines()
for s in data:
ss = replace_numbers_with_braces(s)
list1 = find_all_numbers(ss)
list1 = list(set(list1))
list1.sort()
print(ss,list1)In [ ]:
import glob
import os,shutil
from pathlib import Path
import re
from docx import Document
import openpyxl
from docxtpl import DocxTemplate,InlineImage
from docx.shared import Mm
def find_all_numbers(text):
return re.findall(r'\d+', text)
def replace_numbers(text):
pattern = r'\d+'
replacement = lambda x:'{{ '+ f'img_{x.group()}'+' }}'
modified_text = re.sub(pattern, replacement, text)
return modified_text
def replace_numbers_with_braces(text):
# 使用正则表达式查找连续的数字
pattern = re.compile(r'\d+')
# 使用re.sub()进行替换
result = pattern.sub(lambda x: f"{{{{ img_{x.group(0)} }}}}", text)
return result
#doc = Document()
filepath = '文本文件/'
files = glob.glob(f'{filepath}*.txt')
for fn in files:
p = Path(fn)
with open(fn, "r") as f:
list1 = []
doc = Document()
paragraph3 = doc.add_paragraph()
data = f.readlines()
for s in data:
list2 = []
ss = replace_numbers_with_braces(s)
list2 = find_all_numbers(s)
if len(list2)>0:
for item in list2:
list1.append(item)
list1 = list(set(list1))
list1.sort()
#paragraph3 = doc.add_paragraph()
paragraph3.add_run(ss.replace('\r', ''))
print(p.stem)
print(list1)
if len(list1) >0:
#paragraph3 = doc.add_paragraph()
#paragraph3.add_run(ss.replace('\r', ''))
doc.save(f'./templete/{p.stem}.docx')
dict1 = {}
tpl = DocxTemplate(f'./templete/{p.stem}.docx')
for item in list1:
dict1['img_'+str(item)] = InlineImage(tpl, image_descriptor=f'./img/{str(item)}.jpg',width=Mm(4))
tpl.render(dict1)
tpl.save(f'./docx/{p.stem}.docx')
In [2]:
import glob
import os,shutil
from pathlib import Path
import re
from docx import Document
import openpyxl
from docxtpl import DocxTemplate,InlineImage
from docx.shared import Mm
def find_all_numbers(text):
return re.findall(r'\d+', text)
def replace_numbers(text):
pattern = r'\d+'
replacement = lambda x:'{{ '+ f'img_{x.group()}'+' }}'
modified_text = re.sub(pattern, replacement, text)
return modified_text
def replace_numbers_with_braces(text):
# 使用正则表达式查找连续的数字
pattern = re.compile(r'\d+')
# 使用re.sub()进行替换
result = pattern.sub(lambda x: f"{{{{ img_{x.group(0)} }}}}", text)
return result
fn = '文本文件/槐荫堂7.txt'
with open(fn, "r") as f:
list1 = []
data = f.readlines()
for s in data:
list2 = []
ss = replace_numbers_with_braces(s)
list2 = find_all_numbers(s)
if len(list2)>0:
for item in list2:
list1.append(item)
list1 = list(set(list1))
list1.sort()
print(list1)['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', '129', '13', '130', '131', '132', '133', '134', '135', '136', '137', '139', '14', '140', '141', '142', '143', '144', '145', '148', '149', '15', '150', '151', '152', '153', '154', '155', '156', '157', '159', '16', '160', '162', '163', '164', '165', '166', '169', '17', '170', '171', '172', '173', '174', '175', '176', '177', '178', '18', '180', '181', '182', '183', '184', '185', '186', '189', '19', '190', '191', '192', '194', '195', '196', '197', '198', '199', '2', '20', '200', '201', '202', '203', '204', '206', '208', '209', '21', '210', '211', '212', '213', '218', '219', '22', '220', '221', '23', '233', '237', '24', '240', '243', '25', '250', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '4', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '5', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '8', '80', '81', '82', '83', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99']
In [3]:
import openpyxl
from docxtpl import DocxTemplate,InlineImage
from docx.shared import Mm
dict1 = {}
tpl = DocxTemplate("templete/槐荫堂7.docx")
for item in list1:
dict1['img_'+str(item)] = InlineImage(tpl, image_descriptor=f'./img/黑先/{str(item)}.jpg',width=Mm(4))
#dict1['img_radar'] = InlineImage(tpl, image_descriptor=dict1['radar'])
tpl.render(dict1)
tpl.save('./docx/槐荫堂7(黑先).docx')In [ ]:
import openpyxl
from docxtpl import DocxTemplate,InlineImage
from docx.shared import Mm
dict1 = {}
tpl = DocxTemplate("离垢居谈棋.docx")
for item in list1:
dict1['img_'+str(item)] = InlineImage(tpl, image_descriptor=f'./img/白先/{str(item)}.jpg',width=Mm(4))
#dict1['img_radar'] = InlineImage(tpl, image_descriptor=dict1['radar'])
tpl.render(dict1)
tpl.save('离垢居谈棋(白先).docx')In [ ]:
import openpyxl
fi_xls = 'data/对局目录.xlsx'
wb = openpyxl.load_workbook(fi_xls)
sheet = wb['卷18']
for n in range(sheet.max_row - 1,sheet.max_row+1):
print('## 第'+sheet.cell(n,1).value+'局 ')
print(sheet.cell(n,2).value+' ')
print(sheet.cell(n,3).value+' ')
print('共'+sheet.cell(n,4).value+'着 ')
if sheet.cell(n,5).value is not None:
print(sheet.cell(n,5).value+' ')
print(sheet.cell(n,6).value+' ')
print('\n')In [4]:
import openpyxl
fi_xls = 'data/对局目录.xlsx'
wb = openpyxl.load_workbook(fi_xls)
sheet = wb['卷24']
for n in range(sheet.max_row - 1,50):
print(sheet.cell(n,1).value+' ')
print(sheet.cell(n,2).value+' ')
print(sheet.cell(n,3).value+' ')
print(sheet.cell(n,4).value+' ')
print('\n')[0;31m---------------------------------------------------------------------------[0m [0;31mFileNotFoundError[0m Traceback (most recent call last) Cell [0;32mIn[4], line 5[0m [1;32m 1[0m [38;5;28;01mimport[39;00m [38;5;21;01mopenpyxl[39;00m [1;32m 3[0m fi_xls [38;5;241m=[39m [38;5;124m'[39m[38;5;124mdata/对局目录.xlsx[39m[38;5;124m'[39m [0;32m----> 5[0m wb [38;5;241m=[39m [43mopenpyxl[49m[38;5;241;43m.[39;49m[43mload_workbook[49m[43m([49m[43mfi_xls[49m[43m)[49m [1;32m 6[0m sheet [38;5;241m=[39m wb[[38;5;124m'[39m[38;5;124m卷24[39m[38;5;124m'[39m] [1;32m 9[0m [38;5;28;01mfor[39;00m n [38;5;129;01min[39;00m [38;5;28mrange[39m(sheet[38;5;241m.[39mmax_row [38;5;241m-[39m [38;5;241m1[39m,[38;5;241m50[39m): File [0;32m~/data/lib/python3.12/site-packages/openpyxl/reader/excel.py:344[0m, in [0;36mload_workbook[0;34m(filename, read_only, keep_vba, data_only, keep_links, rich_text)[0m [1;32m 314[0m [38;5;28;01mdef[39;00m [38;5;21mload_workbook[39m(filename, read_only[38;5;241m=[39m[38;5;28;01mFalse[39;00m, keep_vba[38;5;241m=[39mKEEP_VBA, [1;32m 315[0m data_only[38;5;241m=[39m[38;5;28;01mFalse[39;00m, keep_links[38;5;241m=[39m[38;5;28;01mTrue[39;00m, rich_text[38;5;241m=[39m[38;5;28;01mFalse[39;00m): [1;32m 316[0m [38;5;250m [39m[38;5;124;03m"""Open the given filename and return the workbook[39;00m [1;32m 317[0m [1;32m 318[0m [38;5;124;03m :param filename: the path to open or a file-like object[39;00m [0;32m (...)[0m [1;32m 342[0m [1;32m 343[0m [38;5;124;03m """[39;00m [0;32m--> 344[0m reader [38;5;241m=[39m [43mExcelReader[49m[43m([49m[43mfilename[49m[43m,[49m[43m [49m[43mread_only[49m[43m,[49m[43m [49m[43mkeep_vba[49m[43m,[49m [1;32m 345[0m [43m [49m[43mdata_only[49m[43m,[49m[43m [49m[43mkeep_links[49m[43m,[49m[43m [49m[43mrich_text[49m[43m)[49m [1;32m 346[0m reader[38;5;241m.[39mread() [1;32m 347[0m [38;5;28;01mreturn[39;00m reader[38;5;241m.[39mwb File [0;32m~/data/lib/python3.12/site-packages/openpyxl/reader/excel.py:123[0m, in [0;36mExcelReader.__init__[0;34m(self, fn, read_only, keep_vba, data_only, keep_links, rich_text)[0m [1;32m 121[0m [38;5;28;01mdef[39;00m [38;5;21m__init__[39m([38;5;28mself[39m, fn, read_only[38;5;241m=[39m[38;5;28;01mFalse[39;00m, keep_vba[38;5;241m=[39mKEEP_VBA, [1;32m 122[0m data_only[38;5;241m=[39m[38;5;28;01mFalse[39;00m, keep_links[38;5;241m=[39m[38;5;28;01mTrue[39;00m, rich_text[38;5;241m=[39m[38;5;28;01mFalse[39;00m): [0;32m--> 123[0m [38;5;28mself[39m[38;5;241m.[39marchive [38;5;241m=[39m [43m_validate_archive[49m[43m([49m[43mfn[49m[43m)[49m [1;32m 124[0m [38;5;28mself[39m[38;5;241m.[39mvalid_files [38;5;241m=[39m [38;5;28mself[39m[38;5;241m.[39marchive[38;5;241m.[39mnamelist() [1;32m 125[0m [38;5;28mself[39m[38;5;241m.[39mread_only [38;5;241m=[39m read_only File [0;32m~/data/lib/python3.12/site-packages/openpyxl/reader/excel.py:95[0m, in [0;36m_validate_archive[0;34m(filename)[0m [1;32m 88[0m msg [38;5;241m=[39m ([38;5;124m'[39m[38;5;124mopenpyxl does not support [39m[38;5;132;01m%s[39;00m[38;5;124m file format, [39m[38;5;124m'[39m [1;32m 89[0m [38;5;124m'[39m[38;5;124mplease check you can open [39m[38;5;124m'[39m [1;32m 90[0m [38;5;124m'[39m[38;5;124mit with Excel first. [39m[38;5;124m'[39m [1;32m 91[0m [38;5;124m'[39m[38;5;124mSupported formats are: [39m[38;5;132;01m%s[39;00m[38;5;124m'[39m) [38;5;241m%[39m (file_format, [1;32m 92[0m [38;5;124m'[39m[38;5;124m,[39m[38;5;124m'[39m[38;5;241m.[39mjoin(SUPPORTED_FORMATS)) [1;32m 93[0m [38;5;28;01mraise[39;00m InvalidFileException(msg) [0;32m---> 95[0m archive [38;5;241m=[39m [43mZipFile[49m[43m([49m[43mfilename[49m[43m,[49m[43m [49m[38;5;124;43m'[39;49m[38;5;124;43mr[39;49m[38;5;124;43m'[39;49m[43m)[49m [1;32m 96[0m [38;5;28;01mreturn[39;00m archive File [0;32m/usr/lib/python3.12/zipfile/__init__.py:1331[0m, in [0;36mZipFile.__init__[0;34m(self, file, mode, compression, allowZip64, compresslevel, strict_timestamps, metadata_encoding)[0m [1;32m 1329[0m [38;5;28;01mwhile[39;00m [38;5;28;01mTrue[39;00m: [1;32m 1330[0m [38;5;28;01mtry[39;00m: [0;32m-> 1331[0m [38;5;28mself[39m[38;5;241m.[39mfp [38;5;241m=[39m [43mio[49m[38;5;241;43m.[39;49m[43mopen[49m[43m([49m[43mfile[49m[43m,[49m[43m [49m[43mfilemode[49m[43m)[49m [1;32m 1332[0m [38;5;28;01mexcept[39;00m [38;5;167;01mOSError[39;00m: [1;32m 1333[0m [38;5;28;01mif[39;00m filemode [38;5;129;01min[39;00m modeDict: [0;31mFileNotFoundError[0m: [Errno 2] No such file or directory: 'data/对局目录.xlsx'
In [ ]: