如何从GitHub导入CSV文件到文本文件?解决Jupyter Notebook导入报错
解决GitHub CSV文件的导入与保存问题
首先得说清楚你遇到报错的核心原因:你用open()函数直接打开的是GitHub的网页界面链接(那个带blob的页面),但open()只能操作本地文件,没法直接读取网络资源——而且这个链接指向的是GitHub的网页,不是CSV文件的原始数据,这才导致了Invalid argument错误。
下面分场景给你具体解决方案:
一、在Jupyter Notebook中导入GitHub的CSV文件到Python
最便捷的方式是用pandas直接读取,关键是要使用CSV文件的原始数据链接:
- 打开目标CSV的GitHub页面(比如你提供的
groceries.csv),点击页面右上角的「Raw」按钮,复制弹出页面的URL(这个链接才是直接指向CSV原始内容的)。 - 用以下代码读取:
import pandas as pd # 替换成你复制的Raw链接 url = 'https://raw.githubusercontent.com/stedy/Machine-Learning-with-R-datasets/master/groceries.csv' df = pd.read_csv(url) # 可以用head()查看前几行数据确认导入成功 print(df.head())
如果不想依赖pandas,也可以用原生Python的requests库读取原始内容:
import requests url = 'https://raw.githubusercontent.com/stedy/Machine-Learning-with-R-datasets/master/groceries.csv' # 发送请求获取文件内容 response = requests.get(url) # 确保请求成功后读取内容 if response.status_code == 200: csv_content = response.text # 这里csv_content就是CSV的纯文本内容了 print(csv_content[:500]) # 打印前500个字符快速查看 else: print(f"获取文件失败,状态码:{response.status_code}")
二、将GitHub上的CSV内容保存到本地文本文件
只要拿到了CSV的原始内容,就可以用open()写入本地文件:
比如结合requests的方法:
import requests url = 'https://raw.githubusercontent.com/stedy/Machine-Learning-with-R-datasets/master/groceries.csv' response = requests.get(url) if response.status_code == 200: # 打开本地文件并写入内容,指定utf-8编码避免乱码 with open('groceries_local.txt', 'w', encoding='utf-8') as f: f.write(response.text) print("CSV内容已成功保存到本地文本文件!") else: print("无法获取GitHub上的CSV文件,请检查链接是否正确。")
也可以用pandas读取后直接保存:
import pandas as pd url = 'https://raw.githubusercontent.com/stedy/Machine-Learning-with-R-datasets/master/groceries.csv' df = pd.read_csv(url) # 保存为文本文件(也可以直接保存为csv,这里用txt示例) df.to_csv('groceries_local.txt', index=False, encoding='utf-8')
内容的提问来源于stack exchange,提问作者rsc05
相关产品推荐
相关产品推荐

