คำถามติดแท็ก python

Python เป็นภาษาการเขียนโปรแกรมแบบหลายกระบวนทัศน์แบบไดนามิกพิมพ์อเนกประสงค์ มันถูกออกแบบมาให้เรียนรู้เข้าใจและใช้งานได้อย่างรวดเร็วและบังคับใช้ไวยากรณ์ที่สะอาดและสม่ำเสมอ โปรดทราบว่า Python 2 สนับสนุนอย่างเป็นทางการตั้งแต่วันที่ 01-01-2020 สำหรับคำถาม Python เฉพาะรุ่นให้เพิ่มแท็ก [python-2.7] หรือ [python-3.x] เมื่อใช้ตัวแปรหรือไลบรารี Python (เช่น Jython, PyPy, Pandas, Numpy) โปรดรวมไว้ในแท็ก

8
วัตถุประสงค์ของ“ pip install --user …” คืออะไร?
จากpip install --help: --user Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows. (See the Python documentation for site.USER_BASE for full details.) เอกสารสำหรับเว็บไซต์ USER_BASE เป็นหนอนที่น่ากลัวที่น่าสนใจ * ห้ามเรื่องที่ฉันไม่เข้าใจ --userภาษาอังกฤษธรรมดามีจุดประสงค์อะไร? ทำไมการรวมแพคเกจถึง~/.local/สำคัญ? ทำไมไม่เพียงเอาไฟล์ปฏิบัติการมาไว้ที่ $ PATH ของฉันล่ะ

12
แปลง python UTC datetime เป็น local time โดยใช้ไลบรารี่มาตรฐานของไพ ธ อนเท่านั้น?
ฉันมีอินสแตนซ์ของ python datetime ที่สร้างขึ้นโดยใช้ datetime.utcnow () และคงอยู่ในฐานข้อมูล สำหรับการแสดงผลฉันต้องการแปลงอินสแตนซ์วันที่และเวลาที่ดึงมาจากฐานข้อมูลเป็นดาต้าไทม์ท้องถิ่นโดยใช้เขตเวลาเริ่มต้นในท้องถิ่น (เช่นราวกับว่าวันที่และเวลาถูกสร้างขึ้นโดยใช้ datetime.now ()) ฉันจะแปลง UTC วันที่และเวลาเป็นเวลาท้องถิ่นโดยใช้เพียงห้องสมุดมาตรฐานหลาม (เช่นไม่มีการพึ่งพา pytz) ดูเหมือนว่าวิธีแก้ไขปัญหาหนึ่งจะใช้ datetime.astimezone (tz) แต่คุณจะได้รับเขตเวลาท้องถิ่นเริ่มต้นได้อย่างไร

6
ทำไมฉันถึงต้องทำสำเนาของ data frame ในนุ่น
เมื่อเลือกดาต้าเบสย่อยจากพาเรนต์ดาต้าเฟรมฉันสังเกตว่าโปรแกรมเมอร์บางคนทำสำเนาเฟรมข้อมูลโดยใช้.copy()วิธีการ ตัวอย่างเช่น, X = my_dataframe[features_list].copy() ... แทนที่จะเป็นเพียงแค่ X = my_dataframe[features_list] ทำไมพวกเขาถึงทำสำเนา data frame? จะเกิดอะไรขึ้นหากฉันไม่ทำสำเนา

3
แจ้งเตือนใน Python โดยไม่รบกวนโปรแกรม
ฉันพยายามเพิ่มคำเตือนใน Python โดยไม่ทำให้โปรแกรมขัดข้อง / หยุด / ขัดจังหวะ ฉันใช้ฟังก์ชันง่าย ๆ ต่อไปนี้เพื่อตรวจสอบว่าผู้ใช้ผ่านหมายเลขที่ไม่ใช่ศูนย์หรือไม่ ถ้าเป็นเช่นนั้นโปรแกรมควรเตือนพวกเขา แต่ดำเนินการต่อตามปกติ มันควรจะทำงานเช่นโค้ดด้านล่าง แต่ควรใช้คลาสWarning(), Error()หรือException()แทนการพิมพ์คำเตือนด้วยตนเอง def is_zero(i): if i != 0: print "OK" else: print "WARNING: the input is 0!" return i ถ้าฉันใช้รหัสด้านล่างและส่งผ่าน 0 ไปยังฟังก์ชันโปรแกรมขัดข้องและไม่มีการคืนค่า แต่ฉันต้องการให้โปรแกรมทำงานต่อตามปกติและเพียงแจ้งผู้ใช้ว่าเขาผ่าน 0 ไปยังฟังก์ชัน def is_zero(i): if i != 0: print "OK" else: raise Warning("the input …

24
วิธีสร้างวัตถุที่ไม่เปลี่ยนรูปใน Python
แม้ว่าฉันไม่เคยต้องการสิ่งนี้ แต่ก็ทำให้ฉันรู้สึกว่าการสร้างวัตถุที่ไม่เปลี่ยนรูปใน Python อาจเป็นเรื่องยุ่งยากเล็กน้อย คุณไม่สามารถลบล้าง__setattr__ได้เนื่องจากคุณไม่สามารถกำหนดแอตทริบิวต์ในไฟล์__init__. Subclassing tuple เป็นเคล็ดลับที่ใช้ได้ผล: class Immutable(tuple): def __new__(cls, a, b): return tuple.__new__(cls, (a, b)) @property def a(self): return self[0] @property def b(self): return self[1] def __str__(self): return "<Immutable {0}, {1}>".format(self.a, self.b) def __setattr__(self, *ignored): raise NotImplementedError def __delattr__(self, *ignored): raise NotImplementedError แต่แล้วคุณมีการเข้าถึงaและbตัวแปรผ่านself[0]และself[1]ซึ่งเป็นที่น่ารำคาญ เป็นไปได้ไหมใน Pure Python ถ้าไม่ฉันจะใช้นามสกุล …

13
รับ MD5 แฮชของไฟล์ขนาดใหญ่ใน Python
ฉันใช้ hashlib (ซึ่งแทนที่ md5 ใน Python 2.6 / 3.0) และใช้งานได้ดีถ้าฉันเปิดไฟล์และวางเนื้อหาไว้ในhashlib.md5()ฟังก์ชั่น ปัญหาคือไฟล์ที่มีขนาดใหญ่มากซึ่งขนาดอาจเกินขนาด RAM วิธีรับ MD5 hash ของไฟล์โดยไม่โหลดทั้งไฟล์ลงในหน่วยความจำ
188 python  md5  hashlib 

8
วิธีอ้างถึงพา ธ สัมพัทธ์ของทรัพยากรเมื่อทำงานกับที่เก็บรหัส
เรากำลังทำงานกับที่เก็บรหัสซึ่งปรับใช้กับทั้ง Windows และ Linux - บางครั้งในไดเรกทอรีที่แตกต่างกัน หนึ่งในโมดูลในโครงการควรอ้างถึงหนึ่งในแหล่งข้อมูลที่ไม่ใช่ Python ในโครงการ (ไฟล์ CSV, ฯลฯ ) อย่างไร ถ้าเราทำสิ่งที่ชอบ: thefile=open('test.csv') หรือ: thefile=open('../somedirectory/test.csv') มันจะทำงานเฉพาะเมื่อสคริปต์ถูกเรียกใช้จากไดเรกทอรีหนึ่งที่เฉพาะเจาะจงหรือส่วนย่อยของไดเรกทอรี สิ่งที่ฉันต้องการจะทำคือ: path=getBasePathOfProject()+'/somedirectory/test.csv' thefile=open(path) เป็นไปได้ไหม?

9
Python - สร้างรายการที่มีความจุเริ่มต้น
รหัสเช่นนี้มักจะเกิดขึ้น: l = [] while foo: #baz l.append(bar) #qux สิ่งนี้ช้ามากหากคุณกำลังจะผนวกองค์ประกอบหลายพันรายการไว้ในรายการของคุณเนื่องจากรายการจะต้องมีการปรับขนาดอย่างต่อเนื่องเพื่อให้พอดีกับองค์ประกอบใหม่ ใน Java คุณสามารถสร้าง ArrayList ด้วยความจุเริ่มต้น หากคุณมีความคิดว่ารายการของคุณจะใหญ่ขนาดไหนมันจะมีประสิทธิภาพมากขึ้น ฉันเข้าใจว่ารหัสเช่นนี้มักจะถูกนำมารวมเข้ากับความเข้าใจในรายการอีกครั้ง ถ้าวนลูป for / while มีความซับซ้อนมากสิ่งนี้ไม่สามารถทำได้ มีอะไรที่เทียบเท่ากับโปรแกรมเมอร์ Python หรือไม่?

3
ฉันจะเขียนไฟล์ __init__.py แพ็คเกจที่ดี / ถูกต้องได้อย่างไร
แพ็คเกจของฉันมีโครงสร้างดังต่อไปนี้: mobilescouter/ __init__.py #1 mapper/ __init__.py #2 lxml/ __init__.py #3 vehiclemapper.py vehiclefeaturemapper.py vehiclefeaturesetmapper.py ... basemapper.py vehicle/ __init__.py #4 vehicle.py vehiclefeature.py vehiclefeaturemapper.py ... ฉันไม่แน่ใจว่า__init__.pyควรเขียนไฟล์อย่างไรให้ถูกต้อง ดูเหมือนว่า:__init__.py #1 __all__ = ['mapper', 'vehicle'] import mapper import vehicle แต่ตัวอย่างควร__init__.py #2มีลักษณะอย่างไร ของฉันคือ: __all__ = ['basemapper', 'lxml'] from basemaper import * import lxml ควร__all__ใช้เมื่อใด
188 python  packages 

8
ฉันจะเลียนแบบการเปิดที่ใช้ในคำสั่ง with (โดยใช้กรอบการจำลองใน Python) ได้อย่างไร?
ฉันจะทดสอบโค้ดต่อไปนี้ด้วย mocks ได้อย่างไร (โดยใช้ mocks เครื่องมือตกแต่งแพทช์และรักษาการณ์ที่จัดทำโดยกรอบงานจำลองของ Michael Foord ) def testme(filepath): with open(filepath, 'r') as f: return f.read()

19
ฉันจะใช้ Brew ที่ติดตั้ง Python เป็น Python เริ่มต้นได้อย่างไร
ฉันพยายามเปลี่ยนเป็น Homebrew (หลังจากใช้ fink และ macport) บน Mac OS X 10.6.2 ฉันติดตั้ง python 2.7 แล้ว brew install python ปัญหาคือว่าตรงกันข้ามกับ Macport ดูเหมือนว่าไม่มียูทิลิตี้ python_select และ mac python เริ่มต้นของฉันจะเป็นค่าเริ่มต้นเสมอ which python ให้ฉัน /usr/bin/python และ/usr/bin/pythonไม่ใช่ symlink ฉันจะทำอย่างไรเพื่อให้รสชาติการชงหลามเป็นงูหลามเริ่มต้นของฉัน
188 python  homebrew 

21
วิธีการ pythonic ในการตรวจสอบองค์ประกอบสุดท้ายในวง 'for' คืออะไร?
ฉันต้องการทราบวิธีที่ดีที่สุด (ขนาดกะทัดรัดและวิธี "pythonic") เพื่อทำการดูแลเป็นพิเศษสำหรับองค์ประกอบสุดท้ายในการวนรอบ มีชิ้นส่วนของรหัสที่ควรเรียกระหว่างองค์ประกอบเท่านั้นถูกระงับในสุดท้าย นี่คือวิธีที่ฉันทำในปัจจุบัน: for i, data in enumerate(data_list): code_that_is_done_for_every_element if i != len(data_list) - 1: code_that_is_done_between_elements มีวิธีที่ดีกว่านี้ไหม? หมายเหตุ: ฉันไม่ต้องการที่จะทำให้มันมี hacks reduceเช่นการใช้;)

6
TypeError: ลำดับรายการ 0: พบกับสตริงพบ int
ฉันพยายามแทรกข้อมูลจากพจนานุกรมลงในฐานข้อมูล ฉันต้องการวนซ้ำค่าและจัดรูปแบบตามขึ้นอยู่กับชนิดข้อมูล นี่คือตัวอย่างของรหัสที่ฉันใช้: def _db_inserts(dbinfo): try: rows = dbinfo['datarows'] for row in rows: field_names = ",".join(["'{0}'".format(x) for x in row.keys()]) value_list = row.values() for pos, value in enumerate(value_list): if isinstance(value, str): value_list[pos] = "'{0}'".format(value) elif isinstance(value, datetime): value_list[pos] = "'{0}'".format(value.strftime('%Y-%m-%d')) values = ",".join(value_list) sql = "INSERT INTO table_foobar ({0}) VALUES …
188 python 

5
วิธีการติดตั้งแพ็คเกจหลามหลายแพคพร้อมกันโดยใช้ pip
ฉันรู้ว่ามันเป็นวิธีที่ง่ายในการทำ แต่ฉันไม่พบมันที่นี่หรือบน google ดังนั้นฉันอยากรู้ว่ามีวิธีการติดตั้งหลายแพคเกจโดยใช้ pip สิ่งที่ต้องการ: pip install progra1 , progra2 ,progra3 ,progra4 . หรือ: pip install (command to read some txt containing the name of the modules)
188 python  pip 

15
UnicodeDecodeError: ตัวแปลงสัญญาณ 'utf8' ไม่สามารถถอดรหัสไบต์ 0xa5 ในตำแหน่ง 0: ไบต์เริ่มต้นที่ไม่ถูกต้อง
ฉันใช้Python-2.6 CGIสคริปต์ แต่ไม่พบข้อผิดพลาดในการเข้าสู่ระบบเซิร์ฟเวอร์ในขณะที่ทำjson.dumps(), Traceback (most recent call last): File "/etc/mongodb/server/cgi-bin/getstats.py", line 135, in <module> print json.dumps(​​__get​data()) File "/usr/lib/python2.7/json/__init__.py", line 231, in dumps return _default_encoder.encode(obj) File "/usr/lib/python2.7/json/encoder.py", line 201, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode return _iterencode(o, 0) UnicodeDecodeError: 'utf8' codec can't decode byte 0xa5 …
188 python  json 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.