python 从网络读取文件 URL
python read file from a web URL
我目前正在尝试从网站读取一个 txt 文件。
到目前为止我的脚本是:
webFile = urllib.urlopen(currURL)
这样,我就可以处理文件了。但是,当我尝试存储文件时(在 webFile
中),我只得到一个 link 到套接字。我尝试的另一个解决方案是使用 read()
webFile = urllib.urlopen(currURL).read()
然而,这似乎删除了格式(\n
、\t
等)。
如果我这样打开文件:
webFile = urllib.urlopen(currURL)
我可以逐行阅读:
for line in webFile:
print line
这将导致:
"this"
"is"
"a"
"textfile"
但我得到:
't'
'h'
'i'
...
我希望在我的电脑上获取文件,但同时保持格式。
这是因为您迭代了一个字符串。这将导致字符打印字符。
为什么不一次保存整个文件?
import urllib
webf = urllib.urlopen('
txt = webf.read()
f = open('destination.txt', 'w+')
f.write(txt)
f.close()
如果您真的想遍历文件行以供行使用 txt = webf.readlines()
并对其进行迭代。
如果您只是想将远程文件作为 python 脚本的一部分保存到本地服务器,您可以使用 PycURL 库下载并保存它而不解析它。更多信息在这里 - http://pycurl.sourceforge.net
或者,如果您想读取然后写入输出,我认为您只是乱序获取了这些方法。尝试以下操作:
# Assign the open file to a variable
webFile = urllib.urlopen(currURL)
# Read the file contents to a variable
file_contents = webFile.read()
print(file_contents)
> This will be the file contents
# Then write to a new local file
f = open('local file.txt', 'w')
f.write(file_contents)
如果两者都不适用,请更新问题以进行澄清。
您应该使用 readlines() 读取整行:
response = urllib.urlopen(currURL)
lines = response.readlines()
for line in lines:
.
.
但是,我强烈建议您使用 requests
库。
Link 这里 http://docs.python-requests.org/en/latest/
您可以直接下载文件并使用您喜欢的名称保存。之后,您可以读取该文件,稍后如果您不再需要该文件,可以将其删除。
!pip install wget
import wget
url = "https://raw.githubusercontent.com/apache/commons-validator/master/src/example/org/apache/commons/validator/example/ValidateExample.java"
wget.download(url, 'myFile.java')
我目前正在尝试从网站读取一个 txt 文件。
到目前为止我的脚本是:
webFile = urllib.urlopen(currURL)
这样,我就可以处理文件了。但是,当我尝试存储文件时(在 webFile
中),我只得到一个 link 到套接字。我尝试的另一个解决方案是使用 read()
webFile = urllib.urlopen(currURL).read()
然而,这似乎删除了格式(\n
、\t
等)。
如果我这样打开文件:
webFile = urllib.urlopen(currURL)
我可以逐行阅读:
for line in webFile:
print line
这将导致:
"this"
"is"
"a"
"textfile"
但我得到:
't'
'h'
'i'
...
我希望在我的电脑上获取文件,但同时保持格式。
这是因为您迭代了一个字符串。这将导致字符打印字符。
为什么不一次保存整个文件?
import urllib
webf = urllib.urlopen('
txt = webf.read()
f = open('destination.txt', 'w+')
f.write(txt)
f.close()
如果您真的想遍历文件行以供行使用 txt = webf.readlines()
并对其进行迭代。
如果您只是想将远程文件作为 python 脚本的一部分保存到本地服务器,您可以使用 PycURL 库下载并保存它而不解析它。更多信息在这里 - http://pycurl.sourceforge.net
或者,如果您想读取然后写入输出,我认为您只是乱序获取了这些方法。尝试以下操作:
# Assign the open file to a variable
webFile = urllib.urlopen(currURL)
# Read the file contents to a variable
file_contents = webFile.read()
print(file_contents)
> This will be the file contents
# Then write to a new local file
f = open('local file.txt', 'w')
f.write(file_contents)
如果两者都不适用,请更新问题以进行澄清。
您应该使用 readlines() 读取整行:
response = urllib.urlopen(currURL)
lines = response.readlines()
for line in lines:
.
.
但是,我强烈建议您使用 requests
库。
Link 这里 http://docs.python-requests.org/en/latest/
您可以直接下载文件并使用您喜欢的名称保存。之后,您可以读取该文件,稍后如果您不再需要该文件,可以将其删除。
!pip install wget
import wget
url = "https://raw.githubusercontent.com/apache/commons-validator/master/src/example/org/apache/commons/validator/example/ValidateExample.java"
wget.download(url, 'myFile.java')