Python新手,Linux新手。我创建了一个可以挖掘Twitter的流媒体API的脚本。当流中的内容与我的参数匹配时,脚本会写入.csv文件。
我想知道在文件达到1 gig后是否有任何方法可以停止我的脚本。我知道cron可以用来计算脚本和所有内容的时间,但我更关心的是文件大小而不是花费的时间。
感谢您的投入和考虑。
答案 0 :(得分:2)
在您的情况下,您可能不需要os.stat
,而os.stat
在某些情况下可能会给您一个错误的大小(即缓冲区不会刷新)。为什么不使用f.tell()
来读取这样的大小
with open('out.txt', 'w', encoding='utf-8') as f:
csvfile = csv.writer(f)
maxsize = 1024 # max file size in bytes
for row in data():
csvfile.writerow(row)
if f.tell() > maxsize: # f.tell() gives byte offset, no need to worry about multiwide chars
break
答案 1 :(得分:1)
使用python' s os.stat()
获取文件信息,然后检查现有文件的总字节数(fileInfo.st_size
)加上您要写入的数据大小
import os
fileInfo = os.stat('twitter_stream.csv')
fileSize = fileInfo.st_size
print fileSize
# Now get data from twitter
# determine number of bytes in data
# write data if file size + data bytes < 1GB