2017-04-18 59 views
1

我想删除我的输出的空格,并且尝试过单词= [x的单词x.strip('')],但它根本不起作用。从变量和空格打开文件

另外,我试图让它打开比文件data1.txt多。我试图将它分配给我的输入,但它永远不会识别它,因为它是一个字符串时显示的括号,我想不确定是否是原因。

Exemple of output: 
anana : 12 
Orange:24 
Patate: 21 


def ligne(texte): 
    with open(texte) as ouvrir: 
     lecture = ouvrir.readlines() 
     words = [x.split(":")[0].strip() for x in [line.strip() for line in lecture]] 
     words = [x for x in words if len(x) > 1] 
     return lecture 
    return "Le fichier {} n'existe pas.".format(texte) 

def main(): 
    while True: 
     entree = sys.argv[1:] 
     choix = str(entree) 
     texte = "data2.txt" 
     if texte in choix: 
      message4 = sorted(ligne(texte)) 
      for i in message4: 
       print(i) 
      break 
     else: 
      print("Il faut préciser le nom du fichier à traiter") 
      break 
+0

text.split()可能会有帮助,它分裂一个海峡行成使用空格作为分隔符 – freude

回答

2

你回来return lecture,但你改变words,也可以更改代码splitstrip您输入线,像这样:

def ligne(texte): 
    with open(texte) as ouvrir: 
     lecture = ouvrir.readlines() 
     words = [':'.join([x.strip() for x in line.split(':')]) for line in lecture] 
     words = [x for x in words if len(x) > 1] 
     return words 
    return "Le fichier {} n'existe pas.".format(texte) 

如果你要拨打多个文件,你可以这样做:

def main(): 
    entree = sys.argv[1:] 
    for item in entree: 
     message4 = sorted(ligne(item)) 
     for i in message4: 
      print(i) 

并运行代码丝毫文件作为参数:

python your_code.py first_file.txt secend_file.txt ... 
+0

我的话lookds这样patate的单词列表:21我没有看到:21时,我这样做 – Isen

+0

请给我一个简单的输入和您的预期输出 – RaminNietzsche

+0

我编辑了我的问题。而且我的输入是我想要打开的文件名。在这种情况下,它是data1.txt,但我可以输入data2.txt或data3.txt也 – Isen