在python中编辑一行文本时,如何避免在引号中编辑文本的特定部分?

时间:2018-08-22 07:13:48

标签: python python-3.x

我有一个文件(一个Apache日志文件),我需要将其转换为csv。因此必须用逗号替换空格。但是其中一列的字段之间有空格。但是该特定字段用引号引起来。我不想删除引号之间的文本中的空格。我该怎么办?

日志中的行示例:

127.0.0.1--[17 / Aug / 2018:12:57:39 +0530]“ GET / mysoft-webappp / app / getNotifications?number = 5&_ = 1534489899492&_hkstd = 52bf9c52845cecc32af837db8f8e7385c71b229f67f4ef7c42E9ed5c3N9C4YC2Y9C2Y4C2Y4C2Y4C2Y4C4Y2C4Y2C3E4C2Y8C2C8Y6C2C8Y2C8Y8C8C9C9C9D9C8D9C8C9C9C9C8C9C9C9C9C8Y9C5C5C 127.0.0.1

1 个答案:

答案 0 :(得分:0)

您可以使用pandas来读入它,它会自动处理这些情况(甚至可以进一步手动调整其导入行为):

import pandas as pd
df = pd.read_table('/wherever/file/may/roam/yourfile.txt', sep=' ')
df.to_csv('/wherever/file/shall/roam/yourfile.csv')

sep=' '定义一个空格作为源文件中的分隔符
df.to_csv将目标文件另存为csv,默认情况下以逗号作为分隔符,并且不带引号