对TypeError的帮助:write()参数必须是str,而不是None

时间:2016-12-07 03:02:22

标签: python file

我的代码采用常规段落文件并将其切换为ROT13字符 我一直收到错误(" TypeError:write()参数必须是str,而不是None")并且不知道为什么/它在说什么。
我的代码可以很好地将所有内容正确输出到文件中,但是这个错误确实让我烦恼。

功能

# Constants
ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
ROT13_ALPHABET = "NOPQRSTUVWXYZABCDEFGHIJKLM"


def code_ROT13(file_variable_input, file_variable_output):
    line = file_variable_input.readline().strip()
    alphabet_list = list(ALPHABET)
    rot13_list = list(ROT13_ALPHABET)

    while line != "":
        for letter in line:
            rot13_edit = False
            for i in range(len(alphabet_list)):
                if letter == alphabet_list[i] and not rot13_edit:
                    letter = rot13_list[i]
                    rot13_edit = True
                elif letter == alphabet_list[i].lower() and not rot13_edit:
                    letter = rot13_list[i].lower()
                    rot13_edit = True
            file_variable_output.write(letter)

        line = file_variable_input.readline()

主要

# Imports
from cipher import code_ROT13
# Inputs
file_name_input = input("Enter input file name: ")
file_name_input = "code.txt"
file_variable_input = open(file_name_input, "r")

file_name_output = input("Enter output file name: ")
file_name_output = "code_ROT13.txt"
file_variable_output = open(file_name_output, "w")

# Outputs
editversion = code_ROT13(file_variable_input, file_variable_output)
file_variable_output.write(editversion)

file_name_input.close()

1 个答案:

答案 0 :(得分:0)

没有返回的函数,返回None。您已将其分配给editversion,然后您尝试将其写入文件。

但是,您的方法接受该文件作为参数,并且已经写入该文件。

请打电话给我。删除它之前的等号和它之后的行

code_ROT13(file_variable_input, file_variable_output)