![](/img/trans.png)
[英]Issues with the delimiter when trying to read a comma separated file (Python, Pandas & .csv)
[英]Python read CSV file issue when the delimiter symbol itself is in the item
我正在尝试使用csv.reader()将txt文件(逗号分隔符)读入CSV。 但是因为我的定界符(,)有时位于对象/项目中,所以读取项目的整个“行”都会移动。
例:
input.txt中:
Stevenson Corp, 123 Main St, 3 employees\n
Johnson Inc, 456 Main St, 5 employees\n
将导致CSV列为:
Stevenson Corp | 123 Main St | 3 employees
Jonson Inc | 456 Main St | 5 employees
但是,如果我的input.txt文件在要定界的项目中有(,),则会出现问题,例如:
input_bad.txt:
Stevenson Corp, 123 Main St, 3 employees\n
Johnson, Inc, 456 Main St, 5 employees\n #notice the comma before Inc
会导致错误的CSV列分为:
Stevenson Corp | 123 Main St | 3 employees #3 columns
Jonson | Inc | 456 Main St | 5 employees #4 columns (issue)
我想不出任何解决方案,以使Jonson,Inc保持不被“,”分隔符分开。
我的代码如下打开txt文件和csv:
inputfile = open(os.path.join(somelocation, somefile.txt), "r", encoding="utf-8", errors="replace")
csv_data = csv.reader(inputfile, delimiter = ",")
请帮忙。
最好的办法是要回去和改变分隔符在文件从,
到一些更明智的,但如果这不是一个选项,所以你可以做这样的东西作为一种解决方法:
import csv
with open(os.path.join(somelocation, somefile.txt), "r", encoding="utf-8", errors="replace") as inputfile:
spamreader = csv.reader(inputfile, delimiter='¬')
for row in spamreader:
new_row = row.rsplit(",", 2)
print("|".join(new_row))
这将使用文本中未显示的delimer,因此不会拆分任何行(因此您可以使用inputfile.readlines()
进行读取),然后使用rsplit
拆分最右边的两个逗号来创建列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.