首页 > 解决方案 > Removing extra characters when reading csv

问题描述

I'm reading in serial numbers from csv files and adding each number to a database. When I read in the data, it looks like this:

="TheSerialNumber"

How can I make it so the ="" isn't stored when reading in the row? The data doesn't look like that in the file.

import mysql.connector
from mysql.connector import errorcod
import csv
import os.path
from os import path

for file in os.listdir(directory):
filename = os.fsdecode(file)
with open('mydirectory' + filename, 'r', newline='') as csvfile:
    csv_reader = csv.reader(csvfile, delimiter=',')
    count = 0
    next(csv_reader)
    for row in csv_reader:
      print(row[3])

标签: pythoncsv

解决方案


您可以使用正则表达式,匹配紧随第一个单词的单词"

import mysql.connector
from mysql.connector import errorcod
import csv
import os.path
from os import path

import re

for file in os.listdir(directory):
filename = os.fsdecode(file)
with open('mydirectory' + filename, 'r', newline='') as csvfile:
    csv_reader = csv.reader(csvfile, delimiter=',')
    count = 0
    next(csv_reader)
    for row in csv_reader:
        word = re.search(r'(?<==")\w+', row[3])
        print(word)

这应该返回="="serialnum" I would read the documentation on remodule之后的第一个单词,因为它非常适用于您的情况。


推荐阅读