Excel分隔文件

时间:2014-02-16 23:43:42

标签: python macos excel delimiter textedit

我有一个excel文件,其中包含我需要在PC上使用的多个宽度不同的列的数据。但是,该文件包含SOH和STX字符作为分隔字符,因为它们来自Mac上的TextEdit。 SOH是记录分隔符,STX是行分隔符。在我的电脑上,这两个字符都显示为一个矩形(在屏幕截图中)。我不能使用固定宽度分隔选项,因为我会丢失数据。我尝试编写Python脚本,但Python也无法识别SOH和STX,只是将其显示为矩形。如何正确划分这些记录?我会很感激任何可能的方法。 谢谢!

Actual text file

enter image description here

1 个答案:

答案 0 :(得分:3)

这应该有效

SOH='\x01'
STX='\x02'

# As it is, this function returns the values as strings, not as integers
def read_lines(filename):
    rawdata = open(filename, "rb").read()
    for l in rawdata.split(SOH + STX):
        if not l:
            continue
        yield l.split(SOH)

# Rows is a list. Each element in the list is a row of values
# (either a list or a tuple, for example)
def write_lines(filename, rows):
    with open(filename, "wb") as f:
        for row in rows:
             f.write(SOH.join([str(x) for x in row]) + SOH + STX)

编辑:使用示例...

for row in read_lines("myfile.csv"):
    print ", ".join(row)