我正在大学里学习python而且我现在的工作很困难。我们应该采取2个文件并进行比较。我只是试图打开文件,以便我可以使用它们,但我不断收到错误cq:templatePath
componentA
这个错误是什么意思?
答案 0 :(得分:4)
Python 3.5的文件的默认编码是'utf-8'。
Windows的文件的默认编码往往是别的。
如果您打算打开两个文本文件,可以试试这个:
echo nl2br($str);
标准库中应该有一些自动检测。
否则你可以创建自己的:
import locale
locale.getdefaultlocale()
file1 = input("Enter the name of the first file: ")
file1_open = open(file1, encoding=locale.getdefaultlocale()[1])
file1_content = file1_open.read()
然后
def guess_encoding(csv_file):
"""guess the encoding of the given file"""
import io
import locale
with io.open(csv_file, "rb") as f:
data = f.read(5)
if data.startswith(b"\xEF\xBB\xBF"): # UTF-8 with a "BOM"
return "utf-8-sig"
elif data.startswith(b"\xFF\xFE") or data.startswith(b"\xFE\xFF"):
return "utf-16"
else: # in Windows, guessing utf-8 doesn't work, so we have to try
try:
with io.open(csv_file, encoding="utf-8") as f:
preview = f.read(222222)
return "utf-8"
except:
return locale.getdefaultlocale()[1]
答案 1 :(得分:1)
问题是由于字节数据需要解码。
当您将变量插入解释器时,它会显示它的 repr 属性,而 print() 使用 str(在这种情况下相同)并忽略所有不可打印的字符,例如:\x00、\x01 并将它们替换为别的。
一个解决方案是“解码”file1_content(忽略字节):
file1_content = ''.join(x for x in file1_content if x.isprintable())
答案 2 :(得分:0)
如果您要打开文件,则应使用os
生成的路径,如下所示:
import os
os.path.join("path","to","the","file")
答案 3 :(得分:-1)
似乎您在使用字符“ \”和“ /”时遇到了问题。如果您在输入中使用它们-尝试将它们更改为另一种...