2017-05-25 57 views
1

所以我开始学习python几个星期前,我想做一个程序,读取文本文件,并根据文本文件的内容(我的例子将只是数字)它将某些内容输出到不同的文件。Python - 打印到奇怪的输出文件

下面是代码我有:

import tkinter as tk 
import time 
from tkinter import filedialog 

root = tk.Tk() 
root.withdraw() 
file_path = filedialog.askopenfilename() 
new_doc = [] 
with open(file_path, encoding='utf-8') as f: 
    file=f.read() 
for line in file: 
    for x in line: 
     if x == '0': 
      new_doc.append(print ('3', end=' ')) 
     elif x == '1': 
      new_doc.append(print ('6', end=' ')) 
     elif x == '2': 
      new_doc.append(print ('9', end=' ')) 
     elif x == '3': 
      new_doc.append(print ('12', end=' ')) 
     elif x == '3': 
      new_doc.append(print ('15', end=' ')) 
     elif x == '4': 
      new_doc.append(print ('18', end=' ')) 
     elif x == '5': 
      new_doc.append(print ('21', end=' ')) 
     elif x == '6': 
      new_doc.append(print ('24', end=' ')) 
     elif x == '7': 
      new_doc.append(print ('27', end=' ')) 
     elif x == '8': 
      new_doc.append(print('30', end=' ')) 
     elif x == '9': 
      new_doc.append(print ('33', end=' ')) 
     elif x == ' ': 
      new_doc.append(print ('', end='')) 
     else: 
      print ('9 9 9 9 9') 
save = filedialog.asksaveasfile(mode='w', defaultextension=".txt") 
if save is None: 
    print('ERROR!') 
    sys.exit() 
str1 = ''.join(str(e) for e in new_doc) 
save.write(str1) 
save.close() 

在命令行脚本的工作原理,例如,123,输出6 9 12。但是当我告诉他写一个文件时,它只写None,如果我告诉他打印一个数字之间的空格,它也会输出None

我的输出文件基本上是None的。

+0

你确认,你必须写文件的权利? – Fletchius

+0

从doc.append() – Kajal

+5

中删除print语句,因为print()返回None。改用'new_doc.append(“3”)'。 –

回答

0

因为print()返回None。试试new_doc.append(“3”)。 - 休 博思韦尔

离开这里给任何人谁是同样的问题