删除文件python的空白

时间:2018-12-17 18:18:31

标签: python file spaces

我有一个包含多行的文件,其中一些具有空白。

== Predictions on test set ===

inst#     actual  predicted error prediction
    1    2:' ST'      1: NT   +   1 
    2    2:' ST'      1: NT   +   1 
    3    2:' ST'      1: NT   +   1 
    4    2:' ST'      1: NT   +   1 
    5    2:' ST'      1: NT   +   1 
    6    2:' ST'      1: NT   +   1 
    7    2:' ST'      1: NT   +   1 
    8    2:' ST'      1: NT   +   1 
    9    2:' ST'      1: NT   +   1 
   10    2:' ST'      1: NT   +   1 
   11    2:' ST'      1: NT   +   1 
   12    2:' ST'      1: NT   +   1 
   13    2:' ST'      1: NT   +   1 
   14    2:' ST'      1: NT   +   1 
   15    2:' ST'      1: NT   +   1 
   16    2:' ST'      1: NT   +   1 
   17    2:' ST'      1: NT   +   1 
   18    2:' ST'      1: NT   +   1 
   19    2:' ST'      1: NT   +   1 
   20    2:' ST'      1: NT   +   1 
   21    2:' ST'      1: NT   +   1 
   22    2:' ST'      1: NT   +   1 
   23    2:' ST'      1: NT   +   1 
   24    2:' ST'      1: NT   +   1 
   25    2:' ST'      1: NT   +   1 
   26    2:' ST'      1: NT   +   1 
   27    2:' ST'      1: NT   +   1 
   28    2:' ST'      1: NT   +   1 
   29    2:' ST'      1: NT   +   1 
   30    2:' ST'      1: NT   +   1 
   31    2:' ST'      1: NT   +   1 
   32    2:' ST'      1: NT   +   1 
   33    2:' ST'      1: NT   +   1 
   34    2:' ST'      1: NT   +   1 
   35    2:' ST'      1: NT   +   1 
   36    2:' ST'      1: NT   +   1 
   37    2:' ST'      1: NT   +   1 
   38    2:' ST'      1: NT   +   1 
   39    2:' ST'      1: NT   +   1 
   40    2:' ST'      1: NT   +   1 
   41    2:' ST'      1: NT   +   1 
   42    2:' ST'      1: NT   +   1 
   43    2:' ST'      1: NT   +   1 
   44    2:' ST'      1: NT   +   1 
   45    2:' ST'      1: NT   +   1 
   46    2:' ST'      1: NT   +   1 
   47    2:' ST'      1: NT   +   1 
   48    2:' ST'      1: NT   +   1 
   49    2:' ST'      1: NT   +   1 
   50    2:' ST'      1: NT   +   1 
   51    2:' ST'      1: NT   +   1 
   52    2:' ST'      1: NT   +   1 
   53    2:' ST'      1: NT   +   1 
   54    2:' ST'      1: NT   +   1 
   55    2:' ST'      1: NT   +   1 
   56    2:' ST'      1: NT   +   1 
   57    2:' ST'      1: NT   +   1 
   58    2:' ST'      1: NT   +   1 
   59    2:' ST'      1: NT   +   1 
   60    2:' ST'      1: NT   +   1 
   61    2:' ST'      1: NT   +   1 
   62    2:' ST'      1: NT   +   1 
   63    2:' ST'      1: NT   +   1 
   64    2:' ST'      1: NT   +   1 
   65    2:' ST'      1: NT   +   1 
   66    2:' ST'      1: NT   +   1 
   67    2:' ST'      1: NT   +   1 
   68    2:' ST'      1: NT   +   1 
   69    2:' ST'      1: NT   +   1 
   70    2:' ST'      1: NT   +   1 
   71    2:' ST'      1: NT   +   1 
   72    2:' ST'      1: NT   +   1 
   73    2:' ST'      1: NT   +   1 
   74    2:' ST'      1: NT   +   1 
   75    2:' ST'      1: NT   +   1 
   76    1:' NT'      1: NT       1 
   77    1:' NT'      1: NT       1 
   78    1:' NT'      1: NT       1 
   79    1:' NT'      1: NT       1 
   80    1:' NT'      1: NT       1 
   81    1:' NT'      1: NT       1 
   82    1:' NT'      1: NT       1 
   83    1:' NT'      1: NT       1 
   84    1:' NT'      1: NT       1 
   85    1:' NT'      1: NT       1 
   86    1:' NT'      1: NT       1 
   87    1:' NT'      1: NT       1 
   88    1:' NT'      1: NT       1 
   89    1:' NT'      1: NT       1 
   90    1:' NT'      1: NT       1 
   91    1:' NT'      1: NT       1 
   92    1:' NT'      1: NT       1 
   93    1:' NT'      1: NT       1 
   94    1:' NT'      1: NT       1 
   95    1:' NT'      1: NT       1 
   96    1:' NT'      1: NT       1 
   97    1:' NT'      1: NT       1 
   98    1:' NT'      1: NT       1 
   99    1:' NT'      1: NT       1 
  100    1:' NT'      1: NT       1 
  101    1:' NT'      1: NT       1 
  102    1:' NT'      1: NT       1 
  103    1:' NT'      1: NT       1 
  104    1:' NT'      1: NT       1 
  105    1:' NT'      1: NT       1 
  106    1:' NT'      1: NT       1 
  107    1:' NT'      1: NT       1 
  108    1:' NT'      1: NT       1 
  109    1:' NT'      1: NT       1 
  110    1:' NT'      1: NT       1 
  111    1:' NT'      1: NT       1 
  112    1:' NT'      1: NT       1 
  113    1:' NT'      1: NT       1 
  114    1:' NT'      1: NT       1 
  115    1:' NT'      1: NT       1 
  116    1:' NT'      1: NT       1 
  117    1:' NT'      1: NT       1 
  118    1:' NT'      1: NT       1 
  119    1:' NT'      1: NT       1 
  120    1:' NT'      1: NT       1 
  121    1:' NT'      1: NT       1 
  122    1:' NT'      1: NT       1 
  123    1:' NT'      1: NT       1 
  124    1:' NT'      1: NT       1 
  125    1:' NT'      1: NT       1 
  126    1:' NT'      1: NT       1 
  127    1:' NT'      1: NT       1 
  128    1:' NT'      1: NT       1 
  129    1:' NT'      1: NT       1 
  130    1:' NT'      1: NT       1 
  131    1:' NT'      1: NT       1 
  132    1:' NT'      1: NT       1 
  133    1:' NT'      1: NT       1 
  134    1:' NT'      1: NT       1 
  135    1:' NT'      1: NT       1 
  136    1:' NT'      1: NT       1 
  137    1:' NT'      1: NT       1 
  138    1:' NT'      1: NT       1 
  139    1:' NT'      1: NT       1 
  140    1:' NT'      1: NT       1 
  141    1:' NT'      1: NT       1 
  142    1:' NT'      1: NT       1 
  143    1:' NT'      1: NT       1 
  144    1:' NT'      1: NT       1 
  145    1:' NT'      1: NT       1 
  146    1:' NT'      1: NT       1 
  147    1:' NT'      1: NT       1 
  148    1:' NT'      1: NT       1 
  149    1:' NT'      1: NT       1 
  150    1:' NT'      1: NT       1 

=== Evaluation on test set ===

Time taken to test model on supplied test set: 0.13 seconds

=== Summary ===

Correctly Classified Instances          75               50      %
Incorrectly Classified Instances        75               50      %
Kappa statistic                          0     
Mean absolute error                      0.5   
Root mean squared error                  0.7071
Relative absolute error                100      %
Root relative squared error            141.4214 %
Total Number of Instances              150     

=== Detailed Accuracy By Class ===

                 TP Rate  FP Rate  Precision  Recall   F-Measure  MCC      ROC Area  PRC Area  Class
                 1.000    1.000    0.500      1.000    0.667      ?        0.500     0.500      NT
                 0.000    0.000    ?          0.000    ?          ?        0.500     0.500      ST
Weighted Avg.    0.500    0.500    ?          0.500    ?          ?        0.500     0.500     

=== Confusion Matrix ===

  a  b   <-- classified as
 75  0 |  a =  NT
 75  0 |  b =  ST

我想删除这些空格并将每一行放入字典中,其中'='之前的元素将是键,而'='之后的元素将是其值。

但是,我的代码至少在“删除空白”部分无效。这是代码:

x=20
y=3
z = 1.5
v = 0.1

清除空白后,我的文件应该像这样

def copyFile(filename):
    """
    function's contract
    """
    with open(filename, 'r') as inFile:
        for line in inFile:
            cleanedLine = line.strip()
            if cleanedLine:
                firstPart, secondPart = line.split('=')  
                dic[firstPart] = float(secondPart)
        inFile.close()
    return dic

但是不起作用。我在做什么错了?

4 个答案:

答案 0 :(得分:5)

分割字符串后,您需要strip。假设唯一不需要的空格位于=周围或行内容之前或之后。

from ast import literal_eval

def copyFile(filename):
    with open(filename, 'r') as inFile:
        split_lines = (line.split('=', 1) for line in inFile)
        d = {key.strip(): literal_eval(value.strip()) for key, value in split_lines}
    return d

答案 1 :(得分:2)

您的代码存在一些问题。

对于一个,您永远不会定义dic,因此当您尝试向其添加密钥时,您会得到一个NameError

第二,您不需要inFile.close(),因为您是在with中打开它的,它将始终在块外将其关闭。

第三,您的函数和变量名称不是PEP8标准。

第四,您需要strip每个部分。

以下一些有效且看起来不错的代码:

def copy_file(filename):
    """
    function's contract
    """
    dic = {}
    with open(filename, 'r') as in_file:
        for line in in_file:
            cleaned_line = line.strip()
            if cleaned_line:
                first_part, second_part = line.split('=')
                dic[first_part.strip()] = float(second_part.strip())
    return dic

答案 2 :(得分:1)

您有两个问题:

  1. 之所以没有删除空格,是因为您在整行上都调用.strip()strip()删除字符串的开头结束处的空格,而不是中间的空格。而是在.strip()firstpart上调用lastpart

  2. 这将修复您正在创建的内存字典,但是由于您永远不会写入文件,因此不会对文件进行任何更改。您将要创建文件的 second 副本,并在其中写入strip() ed值,然后最后用新文件替换原始文件。

答案 3 :(得分:0)

要删除空格,请尝试使用.replace(“”,“”)而不是.strip()