我有一个非常大的.csv文件(> 500mb),我希望在命令提示符中将其分解为更小的.csv文件.(基本上试图在Windows中找到Linux"拆分"功能".
这必须是批处理脚本,因为我的机器只安装了Windows并且请求软件很痛苦.我遇到了许多示例代码(http://forums.techguy.org/software-development/1023949-split-100000-line-csv-into.html),但是,当我执行批处理时它不起作用.我得到的只是一个输出文件,当我要求它解析每20 000行时只有125kb.
有没有人遇到类似的问题,你是如何解决这个问题的?
我有一个巨大的文本文件(~1GB),遗憾的是我使用的文本编辑器不会读取如此大的文件.但是,如果我可以将它分成两个或三个部分,我会没事的,所以,作为一个练习,我想在python中编写一个程序来完成它.
我认为我希望程序要做的是找到一个文件的大小,将该数字分成几部分,对于每个部分,以块的形式读取到该点,写入文件名 .nnn输出文件,然后读取 -到下一个换行符并写入,然后关闭输出文件等.显然,最后一个输出文件只是复制到输入文件的末尾.
你能帮我解决关键文件系统相关的部分:文件大小,读取和写入块以及读取换行符吗?
我将首先编写这个代码测试,所以没有必要给我一个完整的答案,除非它是一个单行;-)
我正在创建一个文件编辑系统,并希望创建一个基于行的tell()函数而不是基于字节的函数.此函数将在打开(文件)调用的"with循环"内使用.此函数是具有以下内容的类的一部分:
self.f = open(self.file, 'a+')
# self.file is a string that has the filename in it
Run Code Online (Sandbox Code Playgroud)
以下是原始函数(如果您想要行和字节返回,它还有一个char设置):
def tell(self, char=False):
t, lc = self.f.tell(), 0
self.f.seek(0)
for line in self.f:
if t >= len(line):
t -= len(line)
lc += 1
else:
break
if char:
return lc, t
return lc
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,这会返回一个OSError,它与系统如何迭代文件有关,但我不明白这个问题.感谢任何能提供帮助的人.
我想tokenize input file in python请建议我,我是python的新用户.
我阅读了关于正则表达式的一些内容,但仍然有些混乱所以请建议相同的任何链接或代码概述.