2014-10-16 155 views
-4

我试图编写一个程序,该程序打开一个文件,读取该文件,然后将该文件转换为ASCII字符,然后将这些字符写入并输出文件。然而,当我运行该程序,我得到< _io.TextIOWrapper名= 'Output.txt的' 模式= 'R' 编码= 'CP1252'>将输入文件转换为ascii python

def convert_to_ascii(file,Output): 
F = open(file, 'r') 
B = open(Output, 'w') 
F_line=str(F.readline()) 
for _ in F: 
    B.write([ord(str(F_line[i])) for i in F_line]) 
F.close() 
B.close() 

file = input('what file do you wish to convert?') 

convert_to_ascii(file,'Output.txt') 

p=open('Output.txt', 'r') 
print(p) 
+1

当然,你会得到那个输出,当你打印文件对象时,你会发生什么?你可能想调用'.read()'来获取内容。此外,标题中的“转换为ascii”部分没有任何意义,您似乎将数据转换为相应ASCII字符的_ordinal values_。哦,请重写你的'for'循环,因为这是毫无意义的,当然不会做你想要的(提示:实际上使用你的循环变量)。我建议你去阅读一些教程,并在python解释器中玩一段时间来学习该语言的基础知识。 – l4mpi 2014-10-16 11:15:02

+0

请显示样本输入和预期输出。目前还不清楚你在问什么。 – geoffspear 2014-10-16 12:21:57

回答

0

你可以尝试这样的,

file_content = open(file, 'r').read() 
file_content = ''.join(str(ord(c)) for c in file_content)) 
open('Output.txt','w').write(file_content) 
0

我不明白你为什么要打印输出文件。试试这样的:

input_file = input("Enter the file name to read from: ") 
output_file = input("Enter the file name to write to: ") 
file_write = open(output_file, "w") 

inputFile = open(input_file) 
buffer = "" 
for line in inputFile: 
    for i in line: 
     if i.isalpha(): 
      buffer += bin(ord(i))[2:] 
file_write.write(buffer) 

file_write.close() 
inputFile.close() 

[2:]删除被转换为输出文件的'0b'。