txt 到 csv 尝试。无法理解来自 re 的 TypeError
txt to csv attempt. cannot understand the TypeError from re
我正在尝试将此文件 https://bpa.st/SNPQ 转换为 CSV 文件。我花了很长时间将这段代码放在一起,但我不明白为什么它会失败。
import re
f = open('PRM93052012100845','r')
text = f.readlines()
text = re.sub('^\n|\n$','',text)
for no,line in enumerate(text.splitlines()):
print('"'+'","'.join([i.replace('"','\"').strip() for i in re.split('(?<=^[0-9]{2})([0-9]{13}| {13})| +',text.splitlines()[no].strip()) if i != None])+'"')
(比粘贴示例中的行多很多)
我得到以下输出:
Traceback (most recent call last):
File "/home/ben/Documents/WDL Content/eCom Python/printtest.py", line 5, in <module>
text = re.sub('^\n|\n$','',text)
File "/usr/lib/python3.8/re.py", line 210, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object
我希望我能说文件中有一些错误数据,但有一个 MS Office 宏可以完成相同的 objective。我很想知道我做错了什么。
text = f.readlines()
给你列表,因此你不能像 string
或 bytes
那样将它与 re.sub
一起使用。将其替换为 text = f.read()
我正在尝试将此文件 https://bpa.st/SNPQ 转换为 CSV 文件。我花了很长时间将这段代码放在一起,但我不明白为什么它会失败。
import re
f = open('PRM93052012100845','r')
text = f.readlines()
text = re.sub('^\n|\n$','',text)
for no,line in enumerate(text.splitlines()):
print('"'+'","'.join([i.replace('"','\"').strip() for i in re.split('(?<=^[0-9]{2})([0-9]{13}| {13})| +',text.splitlines()[no].strip()) if i != None])+'"')
(比粘贴示例中的行多很多)
我得到以下输出:
Traceback (most recent call last):
File "/home/ben/Documents/WDL Content/eCom Python/printtest.py", line 5, in <module>
text = re.sub('^\n|\n$','',text)
File "/usr/lib/python3.8/re.py", line 210, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object
我希望我能说文件中有一些错误数据,但有一个 MS Office 宏可以完成相同的 objective。我很想知道我做错了什么。
text = f.readlines()
给你列表,因此你不能像 string
或 bytes
那样将它与 re.sub
一起使用。将其替换为 text = f.read()