Python ASCII字符';路径名中的s

Python ASCII字符';路径名中的s,python,python-2.7,encryption,windows-8,path,Python,Python 2.7,Encryption,Windows 8,Path,我正在编写一个简单的加密程序,使用ord()和chr()对字符串和文件名进行加密,但每次我尝试使用file()将其写入文件时,IDLE都会引发: IOError... invalid mode or filename: "\xf6Z\x13Q\xdbG!\n\x0f.txt" 当我使用print()时,它会显示实际的符号,但在编写时,它会使用文本字符串 注意:我正在加密一个文件,并将加密的文件放在一个新目录中。我尝试使用os.path.join()和.abspath(),但仅适用于相对目录 我

我正在编写一个简单的加密程序,使用
ord()
chr()
对字符串和文件名进行加密,但每次我尝试使用
file()
将其写入文件时,IDLE都会引发:

IOError... invalid mode or filename: "\xf6Z\x13Q\xdbG!\n\x0f.txt"
当我使用
print()
时,它会显示实际的符号,但在编写时,它会使用文本字符串

注意:我正在加密一个文件,并将加密的文件放在一个新目录中。我尝试使用
os.path.join()
.abspath()
,但仅适用于相对目录

我注意到,如果我不使用绝对路径名,而只使用文件名,它会起作用,但是因为我必须使用两个不同的位置,所以我必须使用绝对路径名

enc_file_name  = encrypt('MyFile.txt')
f.write(enc_file_name, some_string)

有没有关于如何操作两个路径的路径名的想法?

为什么要使用如此奇怪的文件名?IIRC,Windows不允许文件名包含换行符。可以对文件名进行加密,但为了便于管理,加密的文件名应该只使用可打印字符。使用ASCII将是最简单的,尽管如果您知道自己在做什么,您可以使用UTF-8……您能给出一个简单的工作示例吗?您可能输入了无效字符,或者没有正确编码文件名。我可以举个例子,但关键是文件名很奇怪。它适用于相对文件目录,但当我必须使用两个目录时,我必须使用绝对目录。就像您可以轻松地将那个奇怪的字符串写入文件名一样,但是当您尝试将它指向当前目录之外时,python会感到困惑。如果您处理的是Vigener密码或任何其他一般的加密方法,那么它会让您感到不安。