这个问题主要出现在open函数中,应该为如下:
fp = open(output, "w", encoding="utf-8", newline="")
writer = csv.writer(fp)
上面的字符串可以自己根据文本进行解析,也可以使用time模块的函数进行解析
def parse_time(t):
"""
解析时间,并把时间转换为秒数
:param t:
:return:
"""
index = t.find(",")
# 获取前缀和后缀
prefix = t[:index]
postfix = t[index + 1:]
# 将前缀转化为秒
seconds = 0.0
tm = time.strptime(prefix, "%H:%M:%S")
seconds += tm.tm_hour * 3600 + tm.tm_min * 60 + tm.tm_sec
seconds += int(postfix) / 1000.0
return seconds
个人猜测逗号后面的为毫秒,所以在转换成秒的时候需要除去1000,
这里使用的是openpyxl
import openpyxl
wb = openpyxl.load_workbook(filename)
sheet_names = wb.sheetnames
print(sheet_names)
work_sheet = wb[sheet_names[0]]
first = True
# 获取长度和高度
for row in work_sheet.rows:
# 去掉第一行
if first:
first = False
continue
# 获取第一列和第二列
name = row[0].value
url = row[1].value
if name is None:
continue
print(name, url)
python对json的格式支持的还是比较好的,而且在python中需要把json转换成python的dict或者list再使用。
①.str=>dict json字符串转换成dict
{
"category": 1,
"url": "http://tv.cctv.com/2018/12/04/VIDEgCf74WCBmdYQ9iuAEf52181204.shtml",
"video_id": "G_00600",
"start time": "0:9:22,21",
"end time": "0:9:34,1",
"split": "train",
"id": 600
}
如上面的字符串,可以直接通过以下代码转换:
json_data = json.loads(text)
②.file=>dict
fp = open("1.json", "r", encoding="utf-8")
json_data = json.load(fp)
fp.close()