现在有 A01BCD201901.TXt 文件名的文件, 要根据这个文件名生成一个 txt 文件:BCD.txt 内容是 Learn from 'A01BCD201901.TXT' to BCD
有什么简单的办法呢? python 有现成的包吗
1
tinytoadd 2019-08-12 17:44:06 +08:00 via Android
自己写一个
|
2
xiri 2019-08-12 18:31:08 +08:00 via Android
简单的读取文件名,字符串拼接再写入新文件不就可以了么
|
3
ipwx 2019-08-12 18:33:29 +08:00
你连命名规则都不说,我们怎么帮你。。。
|
4
sjmcefc2 OP 规则是 A01 BCD 201901 => BCD.TXT
前三位,中间三位 后面六位 |
5
sjmcefc2 OP 主要是不太理解怎么在文件中进行替换。
|
6
ipwx 2019-08-12 19:27:45 +08:00
import re
file_name = 'A01BCD201901.TXt' middle = re.match('^.{3}(.{3}).{6}\.txt$', file_name, re.I).group(1) print(middle) |
7
sjmcefc2 OP Learn from 'A01BCD201901.TXT'
to BCD 内容是这种换行的 |
8
Yucklys 2019-08-12 19:30:23 +08:00 via Android
读取文件名,固定长度的话正则都不需要,直接字符串剪切一下获取 BCD,新建文档 BCD.txt ,拼接一下字符写入。
两个关键词,字符串拼接和 io,加个 python 前缀随便网上一搜都有一大堆的,建议先搜完之后没有解决再来问 |
9
sjmcefc2 OP 这种可行吗?有个一文件模板,然后再固定的位置进行替换操作?
|
11
sjmcefc2 OP Learn from 'A01BCD201901.TXT'
to BCD 怎么把文件内容写成这种有换行的格式呢 |
12
ipwx 2019-08-13 01:12:45 +08:00 1
@sjmcefc2
import codecs import re file_name = 'A01BCD201901.TXt' middle = re.match('^.{3}(.{3}).{6}\.txt$', file_name, re.I).group(1) with codecs.open('{}.txt'.format(middle), 'wb', 'utf-8') as f: ____f.write('Learn from \'{}\'\nto {}'.format(file_name, middle)) 自行把下划线 _ 替换成空格。 |
13
sjmcefc2 OP @ipwx 非常感谢。.format 一直记不起来用,都是
f.write(" LEARN \n") f.write(" To \n") 这种换行,tab 缩进,对齐大家都怎么处理呢? 还想请教一下, 如果想在文件里打印一个表格,比如 常见的发票票据这种,是不是有这种包可以快速的套用设计呢? |
15
sjmcefc2 OP |
16
ipwx 2019-08-13 12:14:25 +08:00 via Android
@sjmcefc2 这些都是基本语法的东西,建议先看完书,不要现学现用。
文本文件输出表格可以用库,比如 https://robpol86.github.io Web results terminaltables 3.1.0 — terminaltables |