【问题标题】:How to convert contents of csv to lowercase in Python?如何在 Python 中将 csv 的内容转换为小写?
【发布时间】:2017-06-28 15:48:16
【问题描述】:

我已经查看了所有可以找到的线程,但我仍然无法弄清楚,我遇到了各种各样的问题。

第一个问题是我无法将列表中的项目更改为小写,因此我必须先将其转换为字符串。一旦我这样做了,我就不能在不创建双重列表的情况下将字符串附加回列表中。为什么我不能简单地将列表更改为小写,删除 csv 中的内容,然后将小写列表粘贴回去?

我最近的尝试,但我尝试了很多东西。

with open(teacherDD, 'r+') as f:
read = csv.reader(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
for row in read:
    copyRow = row.copy()
    # print(copyRow)
    del row[:]
    # print(row)
    getLowerStr = str(copyRow).lower()
    # appendLower = row.append(getLowerStr)
    # print(getLowerStr)
    print(row)
    f.write(getLowerStr)
f.close()

【问题讨论】:

  • 发布了我最近的尝试
  • 请解释为什么您不能将列表中的项目转换为小写。 l = [str(x).lower() for x in l] 不适合你吗?
  • 这似乎在列表中创建了一个列表
  • 它不应该...x 可能包含括号,但这是一个列表

标签: python csv lowercase


【解决方案1】:

如果你只是想转换为小写,为什么要使用 csv 阅读器?

您可以使用fileinput 模块来编辑行。

Python3.x

import fileinput

for line in fileinput.input("test.txt", inplace=1):
    print(line.lower(), end='') 

Python2.x

import fileinput
import sys

for line in fileinput.input("test.txt", inplace=1):
    sys.stdout.write(line.lower())

这个模块的一个很酷的特性是,当你用它打开一个文件时,任何用printsys.stdout.write 打印的东西都会被重定向到文件中。 示例输入:

UPPER,CASE,ROW

输出:

upper,case,row

【讨论】:

  • 我不知道那个模块。这样就解决了问题。
猜你喜欢
  • 2013-09-17
  • 1970-01-01
  • 2017-10-11
  • 2020-12-19
  • 2016-11-05
  • 2021-08-13
  • 2019-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多