Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法识别字符串-Python中的字符_Python_Python 3.x_String_For Loop_File Io - Fatal编程技术网

无法识别字符串-Python中的字符

无法识别字符串-Python中的字符,python,python-3.x,string,for-loop,file-io,Python,Python 3.x,String,For Loop,File Io,我正在编写函数的一部分来帮助清理文件中的数据。我正在有效地清理所有记录的温度,并将其转换为摄氏度,然后转换为浮标。我的代码似乎还可以。然而,当我去寻找一个字符,比如“C”,它会继续说每个字符串中都有这个字符。 一个很好的例子是,当我按原样运行时,每次都返回0.0,因为它将所有内容都识别为“NA”。我试图删除所有的代码,只是想找到“C”,同样的事情发生了。 我在任何其他模块中都没有遇到过这个问题,在那里我做了基本相同的事情。有人知道为什么会这样吗 这是我的.tsv文件中的前几行数据的样子: 了解

我正在编写函数的一部分来帮助清理文件中的数据。我正在有效地清理所有记录的温度,并将其转换为摄氏度,然后转换为浮标。我的代码似乎还可以。然而,当我去寻找一个字符,比如“C”,它会继续说每个字符串中都有这个字符。 一个很好的例子是,当我按原样运行时,每次都返回0.0,因为它将所有内容都识别为“NA”。我试图删除所有的代码,只是想找到“C”,同样的事情发生了。 我在任何其他模块中都没有遇到过这个问题,在那里我做了基本相同的事情。有人知道为什么会这样吗

这是我的.tsv文件中的前几行数据的样子:


了解几行数据的外观可能会有所帮助!完成!我包括了前10行,您是否必须为此编写自己的函数,比如作业,或者您是否可以使用pandas和pandas.read_csv之类的工具,并使用制表符分隔?问题实际上可能源于您如何加载数据。当对y.readlines()中的l执行
时:make_list=l.split()
,是否尝试显示每行的
make_list[7]
外观?从你上传的图像来看,这些度数似乎存储在你的.tsv的第6列。@TheHalf-BloodPrince Bingo!你是个救生员。现在一切都好了。非常感谢你的帮助!

for l in y.readlines():
    make_list = l.split()
    if make_list[7] == 'NA' or make_list[7] == 'N/A' or\
       make_list[7] == 'N-A-' or make_list[7] == 'N-A'\
      or make_list[7] == 'NONAPPLICABLE'\
      or make_list[7] == 'NON.APPLICABLE' or 'NON-APPLICABLE':
       make_list[7] = '0'
    if ',' in make_list[7]:
        make_list[7] = make_list[7].replace(',', '.')
    if '-' in make_list[7]:
        make_list[7] = make_list[7].replace('-', '')
    if '°' in make_list[7]:
        make_list[7] = make_list[7].replace('°', '')
    if 'C' not in make_list[7] or 'F' not in make_list[7]\
       or '0' not in make_list[7]:
        if float(make_list[7]) > 45:
            make_list[7] = round((float(make_list[7])-32)*(5/9), 2)
            make_list[7] = str(make_list[7])
    if 'C' in make_list[7]:
        make_list[7] = make_list[7].replace('C', '')
    if 'F' in make_list[7]:
        make_list[7] = make_list[7].replace('F', '')
        make_list[7] = round((float(make_list[7])-32)*(5/9), 2)
    make_list[7] = round(float(make_list[7]), 2) 
    print(make_list[7])