我的公司正在使用一个数据库,我正在编写一个与该数据库交互的脚本。已经有一个脚本用于将查询放在数据库上,并基于该脚本将从数据库返回结果的查询。
我正在 unix 环境中工作,我在脚本中使用该脚本从数据库中获取一些数据,并将查询结果重定向到文件。现在,当我尝试读取此文件时,我收到一条错误消息:
UnicodeEncodeError: 'ascii' codec can't encode character '\u2013' in position 9741: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我知道由于文件的编码,python 无法读取文件。文件的编码不是 ascii,这就是错误出现的原因。我尝试检查文件的编码并尝试使用自己的编码读取文件。
我使用的代码是-
os.system("Query.pl \"select title from bug where (ste='KGF-A' AND ( status = 'Not_Approved')) \">patchlet.txt")
encoding_dict3={}
encoding_dict3=chardet.detect(open("patchlet.txt", "rb").read())
print(encoding_dict3)
# Open the patchlet.txt file for storing the last part of titles for latest ACF in a list
with codecs.open("patchlet.txt",encoding='{}'.format(encoding_dict3['encoding'])) as csvFile
readCSV = csv.reader(csvFile,delimiter=":")
for row in readCSV:
if len(row)!=0:
if len(row) > 1:
j=len(row)-1
patchlets_in_latest.append(row[j])
elif len(row) ==1:
patchlets_in_latest.append(row[0]) …Run Code Online (Sandbox Code Playgroud) 我有一个CSV文件Sample.csv,如下所示
Name,Memory,Encoding,Extra 1,Extra 2
,d,,h,b
FUSE_1,36,30,37,15
FUSE_1,36,28,36,31
Name1,1TB,00000001,30,010
Name1,1TB,00000010,52,001
Run Code Online (Sandbox Code Playgroud)
我正在解析此文件,并希望从文件中检索一些值。我想要的只是第一行中的那些名称,而第二行中具有相应的值。意味着我想获得Memory,Extra 1和Extra 2,因为第二行(d,h和b)中存在相应的值。为此,我将两行的值存储在单独的数组中,然后遍历第二行的数组和与之对应的索引,该索引对应于我从第一数组获取的索引值并将其存储在第二个数组中。我正在使用的代码是-
my $iniFilename = "Sample.csv";
open(my $fi,'<',$iniFilename) or die "Can't open $iniFilename";
while(my $row=<$fi>){
if($row_no == 0)
{
chomp($row);
$row=~ s/\A\s+//g;
$row=~s/\R//g;
if(length($row))
{
@fuse_name_initial = split(/,/,$row);
}
}
elsif($row_no == 1)
{
chomp($row);
$row=~ s/\A\s+//g;
$row=~s/\R//g;
if(length($row)){
@fuse_data_type_initial =split(/,/,$row);
}
}
$row_no++;
}
my $trace=0;
foreach (@fuse_data_type_initial)
{
if($_)
{
if($fuse_name_initial[$trace] !~ /Extra Fuse/){
push @column_no_for_fuse_value,($trace+1);
push @fuse_names , $fuse_name_initial[$trace];
push @fuse_data_type ,$_ ;
$trace++;
}
else{
push …Run Code Online (Sandbox Code Playgroud) 我是perl编程的新手,现在陷入了非常严重的困难.实际上我必须解析一个包含单个表的html文件,我必须从那里提取一行,其中一个列条目是我所知道的.
我的html文件看起来像这样 -
many previous rows description in html format....
<td>some_value_default</td>
<td>0x0</td>
<td><a href="something" target="xyz">something</a></td>
<td>abcd</td>
//*
<tr><a name="Maximum_Capacity"></a>
<td>some 23:4</td>
<td>some_27: 15</td>
<td>24:29</td>
<td>17</td>
<td colspan=3>Maximum_Capacity</td>
<td colspan=5>
some commonly use value are: 24:31|25:67|677:89|xyz abc
</td>
//*
<td>some_value_default</td>
<td> 0x0</td>
<td><a href="something.html" target="ren">sometext</a></td>
<td>again some text</td>
description of many rows in html afterwards...
Run Code Online (Sandbox Code Playgroud)
//*之间的行表示我想要获取的行.我想使用它中包含的信息.如何在数组中获取该行,以便每个列条目都存储为数组元素.
请大家试着帮助我.