9:00~12:00
干活:现在有一个txt文件
将其中的列名和注释填入excel表格中
解决办法:足足千行,所以cv是不太行的,于是写了python脚本
import pandas as pd # 读取txt文件数据,假设txt文件每行是一条记录,每列之间由制表符分隔 import pandas as pd # 读取txt文件数据,假设txt文件每行是一条记录,每列之间由制表符分隔 data = pd.read_csv('C:/Users/Rose/Desktop/go_work/001.txt', sep='`',engine='python', header=0) # 将数据写入Excel文件 data.to_excel('C:/Users/Rose/Desktop/go_work/output.xlsx', index=False)
但是我要的是列名和注释,其中sep只能分三列,没办法一次获得,只能一个代码获得列名,另一个获得注释。
问题:当获取注释时,用sep=" ' "只取出一列而且全是逗号,原因是文本中是COMMENT(空格)'注释',这样的话,它只识别到后面的’。
解决办法:暂时无,想过用sep=r" \s'|' "(空格'或者')但是就是不对(正则表达式不懂),搞了好久,能力不足只能从T开始分隔,再用sep=" ' "再分隔,就很奇怪这就可以弄出来,第一次不行
11:34 重新问了下gpt
column_separators = ['`', "'"]
df = pd.read_csv('C:/Users/Rose/Desktop/go_work/001.txt', sep='|'.join(column_separators),engine='python', header=None)
这样能解决‘的问题
这个错误信息意味着在尝试解析CSV或者文本文件时,发生了错误。具体来说,你提供的 pd.read_csv
的 sep
参数接受的是一个列表(['`', "'"]),但在尝试创建一个正则表达式(使用 `re.compile(sep)`)时,Python 抛出了一个 `TypeError: unhashable type: 'list'` 错误。这是因为正则表达式编译器期望一个字符串作为模式,而不是一个列表。
要解决这个问题,你可以使用 sep='|'.join(column_separators)
方法,将列表中的元素以管道符 |
连接起来,形成一个正则表达式模式。这样,pd.read_csv
函数就可以正确地解析用这些分隔符分开的数据。下面是一个修改后的示例:
import pandas as pd
# 定义所有的分隔符列表
column_separators = ['`', "'"]
# 使用'|'.join连接分隔符,并传递给pd.read_csv
df = pd.read_csv('C:/Users/Rose/Desktop/go_work/001.txt', sep='|'.join(column_separators), header=None)
这种方法会创建一个正则表达式,允许在文本文件中使用 |
分隔符来匹配任何你提供的分隔符(在这个例子中是 `` 和 '
)。这样,pd.read_csv
函数就会正确解析文件中的数据。
下午
下午
看了一会hive建立内外表的操作和导入数据和导出数据,由于没上手操作,看了这些就不想看了,转而琢磨python爬虫,先是用request请求网页
然后对返回的html进行正则解析
就是通过正则表达式去得到我们要的,然后对数据进行封装
完事就可以打印或者存储哦