开发者

Python file.read() seeing junk characters at the beginning of a file

I'm trying to use Python to concatenate a few javascript files together before minifying them, basically like so:

outfile 开发者_如何学Go= open("output.js", "w")
for somefile in a_list_of_file_names:
    js = open(somefile)
    outfile.write(js.read())
    js.close()
outfile.close()

The minifier complains about illegal characters and syntax errors at the beginning of each file, so I did some diagnostics.

>>> r = open("output.js")
>>> somestring = r.readline()
>>> somestring
'\xef\xbb\xbfvar $j = jQuery.noConflict(),\n'
>>> print somestring
var $j = jQuery.noConflict(),

The first line of the file should, of course be "var $j = jQuery.noConflict(),"

In case it makes a difference, I'm working from within Windows.

Any thoughts?

Edit: Here's what I'm getting from the minifier:

U:\>java -jar c:\path\yuicompressor-2.4.2.jar c:\path\somefile.js -o c:\path\bccsminified.js --type js -v

[INFO] Using charset Cp1252

[ERROR] 1:2:illegal character

[ERROR] 1:2:syntax error

[ERROR] 1:3:illegal character


That's a UTF-8 BOM (Byte Order Mark). You've probably edited the file with Notepad.


EF BB BF is a Unicode Byte-Order Mark (BOM). Those are actually in your files. That's why Python is seeing it.

Either ignore/discard the BOM or reencode the files to omit it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜