【问题标题】:Removing punctuation and change to lowercase in python CSV file在python CSV文件中删除标点符号并更改为小写
【发布时间】:2017-11-02 17:52:27
【问题描述】:

下面的代码允许我打开 CSV 文件并将所有文本更改为小写。但是,我在尝试删除 CSV 文件中的标点符号时遇到了困难。我怎样才能做到这一点?我使用 string.punctuation 吗?

file = open('names.csv','r')
lines = [line.lower() for line in file]

with open('names.csv','w') as out
     out.writelines(sorted(lines))

print (lines)

文件中我的几行示例:

贾斯汀_123

安迪*@3

阿德里安

hEnNy!

【问题讨论】:

  • 有什么问题?有什么问题?
  • 我还想删除 CSV 文件中的标点符号。我该怎么做?

标签: python csv lowercase


【解决方案1】:

您可以通过导入字符串并使用下面的示例代码来实现此目的。

实现此目的的另一种方法是使用正则表达式。

  import string
  str(lines).translate(None, string.punctuation)

您可能还想了解更多关于how import string works and its features

您要求的工作示例。

  import string
  with open("sample.csv") as csvfile:
  lines = [line.lower() for line in csvfile]
  print(lines)

会给你 ['justine_123\n', 'andy*@3\n', 'adrian\n', 'henny!']

  punc_table = str.maketrans({key: None for key in string.punctuation})
  new_res = str(lines).translate(punc_table)
  print(new_res)

new_s 结果会给你 justine123n andy3n adrinn henny

【讨论】:

  • 我仍然无法使用您提供的代码删除标点符号。
  • 能否请您发布您的文本文件示例,以便我可以为您提供一个工作示例,而不是上面的直接示例
  • 对不起。我是stackoverflow的新手。是否可以指导我如何发布文本文件?
  • @JanelleKohHuiJuan,请您使用与发布问题相同的方法并仅粘贴几行文本文件
  • 我是否也可以将csv文件更改为字符串来拆分它?
【解决方案2】:

正则表达式示例。

import csv
import re

filename = ('names.csv')

def reg_test(name):

    reg_result = ''

    with open(name, 'r') as csvfile:
        reader = csv.reader(csvfile)
        for row in reader:
            row = re.sub('[^A-Za-z0-9]+', '', str(row))
            reg_result += row + ','

    return reg_result


print(reg_test(filename).lower())

justine123,andy3,adrian,henny,

【讨论】:

    猜你喜欢
    • 2023-02-10
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多