當前位置:首頁 » 編程語言 » python3rb

python3rb

發布時間: 2022-08-23 08:41:35

1. python3 讀取文件內容錯誤

這個不是讀取的數據錯誤,只是編碼不一樣而已,網路一下就OK了

2. python3使用exec執行另外一個py文件報錯

為何要以讀取文件的形式執行?報錯是因為你的rongjinhuiyin.py本身有錯誤,results未賦值使用

importos

os.system('rongjinhuiyin.py')

3. 如何用python3打開一個標準的txt小說,每三秒顯示一行 求高人解答 急急急急急急 謝謝了

#coding: gbk
import re,time
fn="小說文件名.txt"
txt=open(fn,"rb").read()
txt=re.sub("(?isu)[\r\n]+","\r\n")
txts=txt.split("\r\n")
for txt in txts:
for i in xrange(0,len(txt),80):
print txt[i:i+80]
time.sleep(3.0)
print

這樣就可以了。每3秒,顯示80個字元。每段加一個空行。

4. Python3.x和Python2.x的區別

python3.4學習筆記(四) 3.x和2.x的區別

在2.x中:print html,3.x中必須改成:print(html)

import urllib2
ImportError: No mole named 'urllib2'
在python3.x裡面,用urllib.request代替urllib2

import thread
ImportError: No mole named 'thread'
在python3.x裡面,用_thread(在前面加一個下劃線)代替thread

在2.x中except Exception,e : 3.x中改為except (Exception):

=================================
print函數
雖然print語法是Python 3中一個很小的改動,且應該已經廣為人知,但依然值得提一下:Python 2中的print語句被Python 3中的print()函數取代,這意味著在Python 3中必須用括弧將需要輸出的對象括起來。
在Python 2中使用額外的括弧也是可以的。但反過來在Python 3中想以Python2的形式不帶括弧調用print函數時,會觸發SyntaxError。
Python 2.7.6

print 'Python', python_version()
print 'Hello, World!'
print('Hello, World!')
print "text", ; print 'print more text on the same line'
輸出:
Hello, World!
Hello, World!
text print more text on the same line
---------------------------

Python 3.4.1
print('Python', python_version())
print('Hello, World!')

print("some text,", end="")
print(' print more text on the same line')
輸出:
Hello, World!
some text, print more text on the same line
print 'Hello, World!'
File "<ipython-input-3-139a7c5835bd>", line 1
print 'Hello, World!'
^
SyntaxError: invalid syntax

注意:在Python中,帶不帶括弧輸出」Hello World」都很正常。
但如果在圓括弧中同時輸出多個對象時,就會創建一個元組,這是因為在Python 2中,print是一個語句,而不是函數調用。

print 'Python', python_version()
print('a', 'b')
print 'a', 'b'
Python 2.7.7
('a', 'b')
a b

---------------------------------
整數除法
由於人們常常會忽視Python 3在整數除法上的改動(寫錯了也不會觸發Syntax Error),所以在移植代碼或在Python 2中執行Python 3的代碼時,需要特別注意這個改動。

所以,我還是會在Python 3的腳本中嘗試用float(3)/2或 3/2.0代替3/2,以此來避免代碼在Python
2環境下可能導致的錯誤(或與之相反,在Python 2腳本中用from __future__ import division來使用Python
3的除法)。

Python 2.7.6
3 / 2 = 1
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0

Python 3.4.1
3 / 2 = 1.5
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0
---------------------------------
Unicode
Python 2有基於ASCII的str()類型,其可通過單獨的unicode()函數轉成unicode類型,但沒有byte類型。
而在Python 3中,終於有了Unicode(utf-8)字元串,以及兩個位元組類:bytes和bytearrays。

Python 2.7.6
print type(unicode('this is like a python3 str type'))
<type 'unicode'>
print type(b'byte type does not exist')
<type 'str'>
print 'they are really' + b' the same'
they are really the same
print type(bytearray(b'bytearray oddly does exist though'))
<type 'bytearray'>

Python 3.4.1 has <class 'bytes'>
print('and Python', python_version(), end="")
print(' also has', type(bytearray(b'bytearrays')))
and Python 3.4.1 also has <class 'bytearray'>
1
'note that we cannot add a string' + b'bytes for data'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-d3e8942ccf81> in <mole>()
----> 1 'note that we cannot add a string' + b'bytes for data'

TypeError: Can't convert 'bytes' object to str implicitly

=================================

python 2.4 與 python 3.0 的比較
一、 print 從語句變為函數
原: print 1,2+3
改為: print ( 1,2+3 )

二、range 與 xrange
原 : range( 0, 4 ) 結果 是 列表 [0,1,2,3 ]
改為:list( range(0,4) )
原 : xrange( 0, 4 ) 適用於 for 循環的變數控制
改為:range(0,4)

三、字元串
原: 字元串以 8-bit 字元串存儲
改為: 字元串以 16-bit Unicode 字元串存儲

四、try except 語句的變化
在2.x中except Exception,e : 3.x中改為except (Exception):

五、打開文件
原: file( ..... )
或 open(.....)
改為:
只能用 open(.....)
六、從鍵盤錄入一個字元串
原: raw_input( "提示信息" )
改為: input( "提示信息" )

七、bytes 數據類型
A bytes object is an immutable array. The items are 8-bit bytes, represented by integers in the range 0 <= x < 256.
bytes 可以看成是「位元組數組」對象,每個元素是 8-bit 的位元組,取值范圍 0~255。
由於在 python 3.0中字元串以 unicode 編碼存儲,當寫入二進制文件時,字元串無法直接寫入(或讀取),必須以某種方式的編碼為位元組序列後,方可寫入。

(一)字元串編碼(encode) 為 bytes
例: s = "張三abc12"
b = s.encode( 編碼方式)
# b 就是 bytes 類型的數據
# 常用的編碼方式為 : "uft-16" , "utf-8", "gbk", "gb2312", "ascii" , "latin1" 等
# 注 : 當字元串不能編碼為指定的「編碼方式」時,會引發異常
(二) bytes 解碼(decode)為字元串
s = "張三abc12"
b = s.encode( "gbk") # 字元串 s 編碼為 gbk 格式的位元組序列
s1 = b.decode("gbk") # 將位元組序列 b以gbk格式 解碼為字元串
# 說明,當位元組序列不能以指定的編碼格式解碼時會引發異常
(三)使用方法舉例
#coding=gbk
f = open("c:\\1234.txt", "wb")
s = "張三李四abcd1234"
# -------------------------------
# 在 python2.4 中我們可以這樣寫:
# f.write( s )
# 但在 python 3.0中會引發異常
# -------------------------------
b = s.encode("gbk")
f.write( b )
f.close()
input("?")
讀取該文件的例子:
#coding=gbk
f = open("c:\\1234.txt", "rb")
f.seek(0,2) #定位至文件尾
n = f.tell() #讀取文件的位元組數
f.seek(0,0) #重新定位至文件開始處
b = f.read( n )
# ------------------------------
# 在 python 2.4 中 b 是字元串類型
# 要 python 3.0 中 b 是 bytes 類型
# 因此需要按指定的編碼方式確碼
# ------------------------------
s = b.decode("gbk")
print ( s )
# ------------------------------
# 在 python 2.4 中 可以寫作 print s 或 print ( s )
# 要 python 3.0 中 必須寫作 print ( s )
# ------------------------------
f.close()
input("?")
運行後應顯示:
張三李四abcd1234

(四) bytes序列,一但形成,其內容是不可變的,例:
s="ABCD"
b=s.encode("gbk")
print b[0] # 顯示 65
b[0] = 66
# 執行該句,出現異常: 'bytes' object does not support item assignment

八、 chr( K ) 與 ord( c )
python 2.4.2以前
chr( K ) 將編碼K 轉為字元,K的范圍是 0 ~ 255
ord( c ) 取單個字元的編碼, 返回值的范圍: 0 ~ 255
python 3.0
chr( K ) 將編碼K 轉為字元,K的范圍是 0 ~ 65535
ord( c ) 取單個字元的編碼, 返回值的范圍: 0 ~ 65535

九、 除法運算符
python 2.4.2以前
10/3 結果為 3
python 3.0
10 / 3 結果為 3.3333333333333335
10 // 3 結果為 3
十、位元組數組對象 --- 新增
(一) 初始化
a = bytearray( 10 )
# a 是一個由十個位元組組成的數組,其每個元素是一個位元組,類型借用 int
# 此時,每個元素初始值為 0
(二) 位元組數組 是可變的
a = bytearray( 10 )
a[0] = 25
# 可以用賦值語句更改其元素,但所賦的值必須在 0 ~ 255 之間
(三) 位元組數組的切片仍是位元組數組
(四) 字元串轉化為位元組數組
#coding=gbk
s ="你好"
b = s.encode( "gbk") # 先將字元串按某種「GBK」編碼方式轉化為 bytes
c = bytearray( b ) #再將 bytes 轉化為 位元組數組
也可以寫作
c = bytearray( "你好", "gbk")

(五) 位元組數組轉化為字元串
c = bytearray( 4 )
c[0] = 65 ; c[1]=66; c[2]= 67; c[3]= 68
s = c.decode( "gbk" )
print ( s )
# 應顯示: ABCD

(六) 位元組數組可用於寫入文本文件
#coding=gbk
f = open("c:\\1234.txt", "wb")
s = "張三李四abcd1234"
# -------------------------------
# 在 python2.4 中我們可以這樣寫:
# f.write( s )
# 但在 python 3.0中會引發異常
# -------------------------------
b = s.encode("gbk")
f.write( b )
c=bytearray( "王五","gbk")
f.write( c )
f.close()
input("?")

5. python3 調用百度實時語音識別介面,一直報錯4002,請教各位大佬,代碼放在下邊,希望幫我指點一下

對於音頻文件來說, 你的1280個位元組應該是太短了, 官方的文檔也表示了

網頁鏈接

6. python3 怎麼讀取位元組對象

1. python讀取二進制文件
讀取二進制文件並保存為Long型 (讀取原文件通過UltraEdit查看16進制編碼是「78 56 34 12」)
#以二進制的方式讀取文件
#coding: UTF-8
fileData = open('/home/ubuntu/staff_sample.dat','rb')

#讀取文件的前4個位元組 #將讀取的4個位元組轉換為long
data_id = struct.unpack("l",fileData.read(4))
print data_id

列印的結果是305419896。

7. python3 file open默認以什麼方式打開+csdn

python:open/文件操作
open/文件操作
f=open('/tmp/hello','w')

#open(路徑+文件名,讀寫模式)

#讀寫模式:r只讀,r+讀寫,w新建(會覆蓋原有文件),a追加,b二進制文件.常用模式

如:'rb','wb','r+b'等等
讀寫模式的類型有:
rU 或 Ua 以讀方式打開, 同時提供通用換行符支持 (PEP 278)
w 以寫方式打開,
a 以追加模式打開 (從 EOF 開始, 必要時創建新文件)
r+ 以讀寫模式打開
w+ 以讀寫模式打開 (參見 w )
a+ 以讀寫模式打開 (參見 a )
rb 以二進制讀模式打開
wb 以二進制寫模式打開 (參見 w )
ab 以二進制追加模式打開 (參見 a )
rb+ 以二進制讀寫模式打開 (參見 r+ )
wb+ 以二進制讀寫模式打開 (參見 w+ )
ab+ 以二進制讀寫模式打開 (參見 a+ )

注意:
1、使用'W',文件若存在,首先要清空,然後(重新)創建,
2、使用'a'模式 ,把所有要寫入文件的數據都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,將自動被創建。

f.read([size]) size未指定則返回整個文件,如果文件大小>2倍內存則有問題.f.read()讀到文件尾時返回""(空字串)

file.readline() 返回一行

file.readline([size]) 返回包含size行的列表,size 未指定則返回全部行

for line in f: print line #通過迭代器訪問

f.write("hello\n") #如果要寫入字元串以外的數據,先將他轉換為字元串.

f.tell() 返回一個整數,表示當前文件指針的位置(就是到文件頭的比特數).

f.seek(偏移量,[起始位置])

用來移動文件指針

偏移量:單位:比特,可正可負

起始位置:0-文件頭,默認值;1-當前位置;2-文件尾

f.close() 關閉文件

Code:

#!/usr/bin/env python
# Filename: using_file.py

poem='''\Programming is funWhen the work is doneif you wanna make your work also fun: use Python!'''
f=file('poem.txt','w') # open for 'w'riting
f.write(poem) # write text to file
f.close() # close the file
f=file('poem.txt')

# if no mode is specified, 'r'ead mode is assumed by default
while True:
line=f.readline()
if len(line)==0: # Zero length indicates EOF
break
print line,
# Notice comma to avoid automatic newline added by Python
f.close()
# close the file

8. 關於python3中文件名里的反斜杠問題,不需要轉義嗎

很好奇你的文件路徑用\為什麼沒報錯
os.chdir('C:\Users\wxw\Documents\HCL')
print (os.getcwd())
File "C:/Users/wxw/Documents/MyProject/11.py", line 8
os.chdir('C:\Users\wxw\Documents\HCL')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
相反
os.chdir('C:/Users/wxw/Documents/HCL')
print (os.getcwd())
C:\Users\wxw\Documents\HCL

9. 用python3 計算指定目錄下所有文件md5值,並輸出到一個txt文件

import os
import hashlib

path = '指定目錄'

def calc_md5(file_obj):
md5 = hashlib.md5()
while True:
chunk = file_obj.read(1024**2) # 1K
if not chunk:
return md5.hexdigest()
md5.update(chunk)

if __name__ == '__main__':
# 只遍歷本目錄,不遍歷子目錄
with open('md5.txt', 'w') as fout:
for file_name in os.listdir(path):
file_path = os.path.join(path, file_name)
if os.path.isfile(file_path):
with open(file_path, 'rb') as fin:
info = '%s %s' % (file_name, calc_md5(fin))
print(info)
fout.write(info + '\n')

熱點內容
oracle批量插入存儲過程 發布:2025-01-18 10:49:57 瀏覽:41
分表存儲查詢 發布:2025-01-18 10:45:18 瀏覽:469
缺頁演算法 發布:2025-01-18 10:40:20 瀏覽:778
撕裂重罪6游戲電腦需要什麼配置 發布:2025-01-18 10:37:23 瀏覽:444
python大小寫忽略 發布:2025-01-18 10:36:13 瀏覽:441
如何給桌面的游戲加密碼 發布:2025-01-18 10:09:34 瀏覽:231
魅族微信多開安卓怎麼弄 發布:2025-01-18 10:04:33 瀏覽:448
網路設置里沒有伺服器是什麼 發布:2025-01-18 09:52:19 瀏覽:343
阿里雲esc伺服器系統 發布:2025-01-18 09:49:16 瀏覽:790
你們家的無線網密碼是多少 發布:2025-01-18 09:47:50 瀏覽:730