Board logo

标题: [问题求助] 【已解决】python 按输入生成字符串问题 [打印本页]

作者: winbat    时间: 2024-4-1 17:28     标题: 【已解决】python 按输入生成字符串问题

那位会python的大佬帮忙看下这代码倒序模块,这模块逻辑好像有问题,老是倒序处理已存在的原文件(第1次输出文件)请看截图选择文件,而我只需倒序处理新输出同名递增后缀编号文件,还有就是想同上处理第3次时也报错了。
处理流程是:
第1次按“交互模块”输入输出j0001A_01.txt文件,在倒序成DaoXu_j0001A_01.txt(看截图第1次生成步骤)
第2次按“交互模块”输入输出判断当前目录是否存在*_01.txt同名后缀编号文件,如存在则输出同文件则递增成j0001A_02.txt同名后缀编号文件,在倒序成DaoXu_j0001A_02.txt,如有第3第4等‘同上处理’输出则,已此类推递增输出后缀编号文件并倒序。
问题是:此代码‘同上处理’2次输出时把已存在的文件(即第1次输出的原文件)也倒序了。
说白了就是,只需要倒序处理新输出的递增后缀编号文件。还有就是解决无限次‘同上处理’时的报错问题。

好久没来论坛发贴题了,如有不足处,望见各大佬见谅解!由于文件过大,只能上传压缩包阿里云共享链接了,注:压缩包有程序源代码,运行截图及按截图流程生成字符串输出试例文本。
https://f.ws59.cn/f/drua01ow1xy 密码:7765 复制链接到浏览器打开
抱歉,阿里云分享不了压缩包,重新添加文叔叔分享链接
作者: Five66    时间: 2024-4-1 18:50

难绷
阿里盘要注册
还要下载客户端
而且链接里好像也没东西



作者: winbat    时间: 2024-4-2 08:13

回复 2# Five66

https://f.ws59.cn/f/drua01ow1xy 密码:7765 复制链接到浏览器打开
抱歉,阿里云分享不了压缩包,重新添加文叔叔分享链接了
作者: aloha20200628    时间: 2024-4-2 13:29

回复 1# winbat

重写一个最简版(以下代码存为test.py,与被处理文件同目录),主要解决楼主的核心需求
运行test.py的结果》当前目录中(不包括子目录)的全部*_01.txt被逐一生成对应的倒序文件DaoXun_*_nn.txt,倒序文件与源文件同目录
  1. import os,sys
  2. def rF (F, sq, qn):
  3. with open(F, 'r') as fr: lines = fr.readlines()
  4. nF = newF(F, sq, qn)
  5. with open(nF, 'w') as fw:
  6. for line in reversed(lines): fw.write(line)
  7. def newF (F, sq, qn):
  8. global q
  9. np = F.rfind('\\'); mp = F.rfind('_'); xp = F.rfind('.'); q += int(F[mp+1:xp]); qs = f'{sq}{str(q)}'[-qn:]
  10. return F[:np+1]+'DaoXu_'+F[np+1:mp+1]+qs+F[xp:]
  11. ####
  12. q = 0
  13. files = os.popen('dir /b/a-d *_01.txt 2>nul').read().splitlines()
  14. if not files: sys.exit()
  15. qn = len(str(len(files))); sq = '0'*len(str(len(files)))
  16. for f in files: rF(f, sq, qn)
  17. sys.exit()
复制代码

作者: Five66    时间: 2024-4-2 16:14

修改 "文件输出模块" 和 "文件倒序模块"
在 "文件输出模块" 里调用 "文件倒序模块"

"同上处理" 换成 循环
作者: winbat    时间: 2024-4-2 17:12

回复 5# Five66


    感谢,已解决。
作者: winbat    时间: 2024-4-2 17:12

回复 4# aloha20200628


    感谢,已解决。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2