作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在从 GAE 中的表单上传一个 csv/tsv 文件,我尝试使用 python csv 模块解析该文件。
喜欢描述here ,GAE中上传的文件是字符串。
所以我将上传的 string 视为类似文件的对象:
file = self.request.get('catalog')
catalog = csv.reader(StringIO.StringIO(file),dialect=csv.excel_tab)
但我的文件中的新行不一定是“\n”(感谢 excel..),它产生了一个错误:
错误:未加引号的字段中出现换行符 - 您是否需要以通用换行模式打开文件?
有谁知道如何使用 StringIO.StringIO 将字符串视为以通用换行符打开的文件?
最佳答案
怎么样:
file = self.request.get('catalog')
file = '\n'.join(file.splitlines())
catalog = csv.reader(StringIO.StringIO(file),dialect=csv.excel_tab)
或者正如评论中指出的那样,csv.reader()
支持来自列表的输入,因此:
file = self.request.get('catalog')
catalog = csv.reader(file.splitlines(),dialect=csv.excel_tab)
或者如果将来 request.get
支持读取模式:
file = self.request.get('catalog', 'rU')
catalog = csv.reader(StringIO.StringIO(file),dialect=csv.excel_tab)
关于python - 在 Google App Engine 的 python 中上传和解析带有 "universal newline"的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5341174/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!