Python,这门灵活又强大的语言,要怎么才能把数据“喂”给它呢?也就是Python怎么读入?别怕,方法多着呢,从最简单的键盘输入,到复杂的文件读取,甚至网络数据的抓取,Python都能搞定。
先说说最直接的,键盘输入。这个场景很简单,你运行程序,然后等着用户在控制台输入信息。用input()
函数就能实现,就像这样:
python
name = input("请输入你的名字:")
print("你好," + name + "!")
是不是很简单?用户输入什么,input()
函数就返回什么,然后你就可以用这个返回值做任何你想做的事情了。但要注意,input()
返回的是字符串,如果想读入数字,需要用int()
或float()
转换一下。比如:
python
age = int(input("请输入你的年龄:"))
print("你明年就" + str(age + 1) + "岁了!")
但是,如果用户输入的不是数字,而是字母呢?程序就会报错。所以,在实际应用中,你需要加上错误处理机制,比如try...except
语句,来保证程序的健壮性。我觉得,这就像给你的程序穿上了一层铠甲,防止被意外情况击垮。
除了键盘输入,更常见的是从文件读入数据。毕竟,谁会没事一次次手动输入大量数据呢?Python提供了open()
函数来打开文件,然后你可以用read()
, readline()
, 或 readlines()
等方法来读取文件内容。
python
try:
with open("data.txt", "r") as f:
content = f.read()
print(content)
except FileNotFoundError:
print("文件不存在!")
这段代码尝试打开名为data.txt
的文件,并读取所有内容。with open()
语句是个好习惯,它能自动关闭文件,避免资源泄露。就像用完东西要放回原处一样,是个负责任的好习惯。"r"
表示以只读模式打开文件,如果想写入文件,需要用"w"
或"a"
。"w"
会覆盖原有内容,"a"
则是在文件末尾追加。
但是,如果data.txt
文件很大,用f.read()
一次性读取所有内容可能会导致内存溢出。这时候,可以考虑用f.readline()
逐行读取,或者用f.readlines()
读取所有行,然后逐行处理。就像吃自助餐一样,不要一次拿太多,否则吃不完就浪费了。
另外,如果文件是CSV格式,也就是用逗号分隔的数据,可以用csv
模块来读取。这个模块提供了更方便的方法来处理CSV文件,比如:
“`python
import csv
try:
with open(“data.csv”, “r”) as f:
reader = csv.reader(f)
for row in reader:
print(row)
except FileNotFoundError:
print(“CSV文件不存在!”)
“`
这段代码会逐行读取data.csv
文件,并将每行数据作为一个列表打印出来。csv.reader()
会自动处理逗号分隔符,非常方便。我觉得这就像有了一个专门的工具,处理特定类型的数据更加得心应手。
除了本地文件,还可以从网络读入数据。Python的requests
库可以用来发送HTTP请求,获取网页内容。就像用浏览器访问网页一样,requests
可以让你用代码来做同样的事情。
“`python
import requests
try:
response = requests.get(“https://www.example.com”)
response.raise_for_status() # 检查请求是否成功
content = response.text
print(content)
except requests.exceptions.RequestException as e:
print(“网络请求失败:”, e)
“`
这段代码会访问https://www.example.com
,并打印网页内容。response.raise_for_status()
会检查请求是否成功,如果返回码不是200,就会抛出异常。这就像检查你买的东西是不是正品一样,确保你得到的是正确的结果。获取到的网页内容通常是HTML格式,你可以用Beautiful Soup
等库来解析HTML,提取你需要的数据。
当然,除了requests
,还有其他的库可以用来从网络读入数据,比如urllib
。选择哪个库取决于你的具体需求。
还有一种情况,数据可能存储在数据库中。Python提供了各种数据库连接库,比如sqlite3
, pymysql
, psycopg2
等,可以连接到不同的数据库,并执行SQL查询。
“`python
import sqlite3
try:
conn = sqlite3.connect(“mydatabase.db”)
cursor = conn.cursor()
cursor.execute(“SELECT * FROM mytable”)
rows = cursor.fetchall()
for row in rows:
print(row)
conn.close()
except sqlite3.Error as e:
print(“数据库连接失败:”, e)
“`
这段代码会连接到名为mydatabase.db
的SQLite数据库,并查询mytable
表中的所有数据。cursor.execute()
用于执行SQL语句,cursor.fetchall()
用于获取所有查询结果。用完数据库后,一定要关闭连接,释放资源。
总而言之,Python怎么读入数据,取决于数据的来源和格式。键盘输入适合少量交互式数据,文件读取适合本地存储的数据,网络请求适合远程数据,数据库连接适合结构化数据。选择合适的方法,加上适当的错误处理,就能轻松驾驭各种数据输入场景。我觉得,掌握这些技巧,就像拥有了各种工具,可以应对不同的挑战,让你的Python程序更加强大。读入只是第一步,更重要的是如何处理这些数据,让它们发挥价值。
评论(0)