python - 如何在其他执行中创建不同的 txt.name
问题描述
i = 1
while i <=10:
f = open("txtfile.txt",+str(i) "a+")
f.write("111\n")
f.write("222\n")
i = i + 1
f.close()
我想多次创建txt,但最上面的代码不在我的脑海里。
我想创建一个txt.file1,如果存在,下次执行的名字是txt.file2。
解决方案
这是在 Python 3.6+ 中创建 10 个文件的简单方法,命名为 from file.txt01
to file.txt10
:
from pathlib import Path
for i in range(1, 11):
f = Path(f'file.txt{i:02d}')
f.write_text('111\n222\n')
如果您想在每次运行时创建一个新文件,并按顺序无限编号,请执行以下操作:
from pathlib import Path
i = 1
while True:
if Path(f'file.txt{i}').exists():
i += 1
else:
Path(f'file.txt{i}').write_text('111\n222\n')
break
但那是非常低效的。
所以也许这是一个更好的解决方案:
from pathlib import Path
source = Path('/home/accdias/temp')
prefix = 'file.txt'
slots = set([int(_.name.replace(prefix, '')) for _ in source.glob(f'{prefix}*')])
slot = min(set(range(1, max(slots, default=1) + 1)) - slots, default=max(slots, default=1) + 1)
filename = source / f'{prefix}{slot}'
filename.write_text('111\n222\n')
上面的解决方案很好,因为它考虑了可能存在的任何间隙并选择下一个可用的最低插槽号。
推荐阅读
- r - geom_errorbar 在 faceted marplot ggplo2 中显示错误
- php - 如何通过保存在数据库中的链接在 php 页面中显示图像
- python - 从 .txt 文件中读取的更智能方式(for-loop?)
- unity3d - Unity:音频源、音频监听器和音频剪辑之间的区别
- sql - 取消嵌套和重组大型查询数组似乎会破坏 null
- java - 读取输入流的 Java 未报告异常
- python-3.x - 如何确定 Matplotlib 中连接了哪些事件?
- python - 自动制作合成图像用于 cnn 训练
- html - 如何使用 style="text-align:center;" 在普通文本上?
- c# - 更改 CookieDomain 后 FormsAuthentication.SignOut() 不起作用