Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用“解析.txt文件”&引用;_Python_Parsing - Fatal编程技术网

Python 用“解析.txt文件”&引用;

Python 用“解析.txt文件”&引用;,python,parsing,Python,Parsing,我有一个以下格式的文本文件 "0ec62f05-3e87-4143-b417-1571d8634d07","""906823B1-F2D8-4C35-93FB-4C39CB01A8A8""","""Promo_1""",2015-08-27,2015-09-02,700302,,,,12.3.1.1,"""11802,11925,11368""",2017-27-01,""""""" ........ 如何删除不必要的“”, 这需要是单一的行似乎符合引用的csv格式 对于您的线路,我得到以下信

我有一个以下格式的文本文件

"0ec62f05-3e87-4143-b417-1571d8634d07","""906823B1-F2D8-4C35-93FB-4C39CB01A8A8""","""Promo_1""",2015-08-27,2015-09-02,700302,,,,12.3.1.1,"""11802,11925,11368""",2017-27-01,"""""""
........
如何删除不必要的“”,
这需要是单一的

行似乎符合引用的
csv
格式

对于您的线路,我得到以下信息:

l = ['''"0ec62f05-3e87-4143-b417-1571d8634d07","""906823B1-F2D8-4C35-93FB-4C39CB01A8A8""","""Promo_1""",2015-08-27,2015-09-02,700302,,,,12.3.1.1,"""11802,11925,11368""",2017-27-01,"""""""''']

import csv

cr = csv.reader(l)
for row in cr:
    print(row)
每个
都是如下所示的列表:

['0ec62f05-3e87-4143-b417-1571d8634d07', '"906823B1-F2D8-4C35-93FB-4C39CB01A8A8"', '"Promo_1"', '2015-08-27', '2015-09-02', '700302', '', '', '', '12.3.1.1', '"11802,11925,11368"', '2017-27-01', '"""']
现在,对于常规文件:

import csv

with open("file.csv") as f:    
  cr = csv.reader(f)
  for row in cr:
      print(row)

要删除不必要的引号,只需将
替换为
[x.strip(““”)for x in row]

阅读后,这是一个非常原始的解决方案,但简单易懂

while(text.count('""')):
    text = text.replace('""', '"')

是的,如果使用string.replace作为单引号内的双引号,则它们将被替换

 oldstring = '"""906823B1-F2D8-4C35-93FB-4C39CB01A8A8"""'
 newstring = oldstring.replace('"""', '"')

新闻字符串将显示为“906823B1-F2D8-4C35-93FB-4C39CB01A8A8”

我会用逗号分割行(遵循CSV惯例),去掉所有语音标记“”-然后循环,将语音标记添加回CSV文件的每个元素。类似这样的

string strippedLine = line.Replace("\"", "");
string[] row = strippedLine.Split(',');

string formattedRow = string.Empty;
string comma = string.Empty;

for (int i = 0; i <= row.Length; i++)
{
    formattedRow += comma + "\"" + strippedLine + "\"";   // <-- Rebuild the line here
    comma = ",";
}
string strippedLine=line.Replace(“\”,”);
string[]行=strippedLine.Split(',');
string formattedRow=string.Empty;
字符串逗号=string.Empty;

对于(int i=0;i您的文本文件的大致大小是多少?是否总是有3个引号或1个引号,而不是2个或4个或5个相邻引号?使用正则表达式对2个或多个连续双引号组成的组@Jacques de Hooge approximate-17000个类似行进行了哪些尝试?您是否有一个函数或脚本使您出错r?@Aaron