Python 保存数据为多个文本, 1 个文本仅保存 1 万行数据,如何实现?

2017-07-03 17:19:15 +08:00
 KhadainJHIN
将服务器返回的数据保存到本地文本,需要实现的功能如标题:,自动命名文本文件:save1,save2···
2597 次点击
所在节点    Python
8 条回复
crazycabbage
2017-07-03 17:45:42 +08:00
一个变量 count 计数

```
name = 0
for i in data:
if count == 10000:
count = 0
name += 1
file_object = open('save%d.txt'%name, 'w+')
file_object.write(i)
file_object.close( )
```
knightdf
2017-07-03 17:54:05 +08:00
`man split`, 不谢
KhadainJHIN
2017-07-03 17:56:40 +08:00
@crazycabbage 非常感谢提供的思路和代码,我在实际代码中遇到了一个问题:服务器返回的数据长短不一,当存储数据足够 10000 时,才保存为文本,命名为 save1,当存储足够第二个 10000 时,才保存为 save2,如何才能保证检测到这一变化?
KhadainJHIN
2017-07-03 17:57:52 +08:00
@knightdf 😆谢谢,如何检测服务器返回的数据长度呢,要保证这一长度足够才划分文件
wlsnx
2017-07-03 18:06:23 +08:00
data = []
while True:
r = receive()
data.extend(r.splitlines())
if len(data) >= 10000:
save(data[:10000])
data = data[10000:]
KhadainJHIN
2017-07-03 18:06:37 +08:00
@knightdf windows 机器···
romanticbao
2017-07-03 18:47:28 +08:00
@KhadainJHIN cygwin
troywinter
2017-07-04 00:18:37 +08:00
你需要的是 file rotation,可以谷歌一下 python 里的 rotatingfilehandler, 参考一下它们标准库里的实现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/372728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX