社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

jfs

jfs 最近创建的主题
jfs 最近回复了

要启用文本模式,请通过 universal_newlines=True 参数:

#!/usr/bin/env python3
import csv
from subprocess import Popen, PIPE

with Popen(["sort", "a.csv"], stdout=PIPE, universal_newlines=True) as p:
    print(list(csv.reader(p.stdout, delimiter="\t")))

如果需要解释引号字段中嵌入的换行符,请创建 io.TextIOWrapper ,通过 newline='' 参数:

#!/usr/bin/env python3
import csv
import io
from subprocess import Popen, PIPE

with Popen(["sort", "a.csv"], stdout=PIPE) as p, \
     io.TextIOWrapper(p.stdout, newline='') as text_file:
    print(list(csv.reader(text_file, delimiter="\t")))

而且 TextIOWrapper 允许显式指定字符编码(否则为默认值) locale.getpreferredencoding(False) (已使用)。

注意:您不需要外部 sort 命令可以用纯Python对行进行排序:

#!/usr/bin/env python3
import csv

with open('a.csv', newline='') as text_file:
    rows = list(csv.reader(text_file, delimiter="\t"))
    rows.sort()
    print(rows)

注意:更高版本对csv行而不是物理行进行排序(如果需要,可以对行进行排序)。

13 年前
回复了 jfs 创建的主题 » 如何在python中跳过读取CSV文件的第一行?

要跳过第一行,请拨打:

next(inf)

Python中的文件是行上的迭代器。

15 年前
回复了 jfs 创建的主题 » 最令人沮丧的python黑客是什么?

但并不总是有效的魔法。例如,当元类被滥用来创建dsl时。这样的dsl可以适用于大多数任务,但在复杂的(作者意想不到的)任务上会出现可怕的中断。