searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Python在文件存储与端口检查中的应用

2024-10-17 09:34:37
1
0

Python作为一种强大的编程语言,不仅在网络编程、数据分析、人工智能等领域发挥着重要作用,还在文件存储与端口检查等日常系统管理任务中表现突出。本文将探讨Python如何高效地用于文件存储与端口检查,并通过实例展示其应用效果。

文件存储与Python

在文件存储方面,Python提供了丰富的库和函数,可以方便地处理文件的创建、读取、写入、删除等操作。同时,Python还支持对文件系统进行遍历,从而获取指定目录下的所有文件和文件夹信息。

1. 获取当前工作目录与列出目录内容

使用Python进行文件操作前,通常需要了解当前的工作目录。os.getcwd()函数可以返回当前工作目录的路径。而os.listdir()函数则可以列出指定目录(默认为当前目录)中的所有文件和文件夹名称。

 
python复制代码
 
 
import os
 
 
 
# 获取当前工作目录
 
current_directory = os.getcwd()
 
print("当前工作目录:", current_directory)
 
 
 
# 列出当前目录中的所有文件和文件夹
 
files_and_folders = os.listdir()
 
print("当前目录中的文件和文件夹:", files_and_folders)
 

2. 检查文件是否存在

在进行文件写入或读取操作前,检查文件是否存在是一个好习惯。Python提供了os.path.exists()函数来实现这一功能。如果文件或目录存在,该函数返回True,否则返回False

 
python复制代码
 
 
file_path = "my_data/my_file.txt"
 
if os.path.exists(file_path):
 
print("文件存在")
 
else:
 
print("文件不存在")
 

此外,pathlib库也提供了更现代和面向对象的方法,使用Path.exists()方法可以更直观地检查文件路径。

 
python复制代码
 
 
from pathlib import Path
 
 
 
file_path = Path("my_data/my_file.txt")
 
if file_path.exists():
 
print("文件存在")
 
else:
 
print("文件不存在")
 

3. 文件读写操作

Python的内置open()函数可以用于打开文件,并进行读写操作。通过with语句可以确保文件在读写操作完成后被正确关闭。

 
python复制代码
 
 
# 写入文件
 
with open("my_data/my_file.txt", "w") as file:
 
file.write("Hello, World!")
 
 
 
# 读取文件
 
with open("my_data/my_file.txt", "r") as file:
 
content = file.read()
 
print("文件内容:", content)
 

端口检查与Python

在网络编程和系统管理中,端口检查是一个常见的任务。Python提供了多种方法来检查端口的占用情况,包括使用socket模块、psutil库以及netifaces模块。

1. 使用socket模块检查端口

socket模块是Python标准库的一部分,可以用于创建套接字,进而检查端口是否被占用。

 
python复制代码
 
 
import socket
 
 
 
def check_port(port):
 
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
 
try:
 
s.bind(("", port))
 
print(f"Port {port} is available.")
 
except socket.error as e:
 
print(f"Port {port} is in use: {e}")
 
 
 
check_port(8080)
 

2. 使用psutil库查看端口使用情况

psutil是一个跨平台库,用于访问系统和进程信息。它可以列出所有活动的网络连接和端口使用情况。

 
python复制代码
 
 
import psutil
 
 
 
def list_ports():
 
for conn in psutil.net_connections():
 
print(f"{conn.laddr.ip}:{conn.laddr.port} -> {conn.raddr.ip}:{conn.raddr.port}")
 
 
 
list_ports()
 

3. 使用netifaces模块列出网络接口及其配置

netifaces模块可以列出所有网络接口及其配置,包括IP地址和端口使用情况。

 
python复制代码
 
 
import netifaces
 
 
 
def list_interfaces():
 
for interface in netifaces.interfaces():
 
print(f"Interface: {interface}")
 
addrs = netifaces.ifaddresses(interface)
 
for addr in addrs[netifaces.AF_INET]:
 
print(f" IP: {addr['addr']}")
 
for conn in psutil.net_connections(kind='inet'):
 
if conn.laddr.ip == addr['addr']:
 
print(f" Port: {conn.laddr.port}")
 
 
 
list_interfaces()
 

应用实例:网络爬虫与数据存储

以网络爬虫为例,Python的Scrapy框架可以方便地爬取网页数据,并将数据存储到文件中。下面是一个简单的示例,展示了如何使用Scrapy爬取新浪新闻,并将数据保存到TXT文件中。

  1. 创建Scrapy项目:
 
bash复制代码
 
 
scrapy startproject newsSpider
 
  1. 在Spider文件中编写爬虫逻辑,遍历新闻分类并抓取子链接,然后将抓取的内容保存到TXT文件。
 
python复制代码
 
 
# -*- coding: utf-8 -*-
 
import os
 
import scrapy
 
from newsSpider.items import NewsspiderItem
 
 
 
class newsSpider(scrapy.Spider):
 
name = 'news'
 
allowed_domains = ['sina.com.cn']
 
start_urls = ['news.sina.com.cn/guide/']
 
 
 
def parse(self, response):
 
for each in response.xpath("//div[@id='tab01']/div[@data-sudaclick!='citynav']"):
 
parentUrl = each.xpath('./h3/a/@href').extract()[0]
 
parentTitle = each.xpath('./h3/a/text()').extract()[0]
 
parentpath = './data/' + parentTitle
 
if not os.path.exists(parentpath):
 
os.makedirs(parentpath)
 
with open(os.path.join(parentpath, "news.txt"), "a", encoding="utf-8") as file:
 
# 这里可以添加抓取的具体内容,并写入文件
 
file.write(f"Title: {parentTitle}\n")
 

在这个示例中,爬虫遍历新浪新闻的分类页面,并创建相应的文件夹存储每个分类的新闻标题。实际使用时,可以在parse方法中添加更多的解析逻辑,将完整的新闻内容保存到文件中。

结语

Python凭借其强大的库和函数,在文件存储与端口检查等系统管理任务中展现出了出色的能力。通过合理地使用这些工具和方法,可以有效地提高任务执行的效率和准确性。无论是在数据存储、网络编程还是系统管理等领域,Python都是一个值得信赖的选择。

0条评论
0 / 1000
每日知识小分享
704文章数
6粉丝数
每日知识小分享
704 文章 | 6 粉丝
原创

Python在文件存储与端口检查中的应用

2024-10-17 09:34:37
1
0

Python作为一种强大的编程语言,不仅在网络编程、数据分析、人工智能等领域发挥着重要作用,还在文件存储与端口检查等日常系统管理任务中表现突出。本文将探讨Python如何高效地用于文件存储与端口检查,并通过实例展示其应用效果。

文件存储与Python

在文件存储方面,Python提供了丰富的库和函数,可以方便地处理文件的创建、读取、写入、删除等操作。同时,Python还支持对文件系统进行遍历,从而获取指定目录下的所有文件和文件夹信息。

1. 获取当前工作目录与列出目录内容

使用Python进行文件操作前,通常需要了解当前的工作目录。os.getcwd()函数可以返回当前工作目录的路径。而os.listdir()函数则可以列出指定目录(默认为当前目录)中的所有文件和文件夹名称。

 
python复制代码
 
 
import os
 
 
 
# 获取当前工作目录
 
current_directory = os.getcwd()
 
print("当前工作目录:", current_directory)
 
 
 
# 列出当前目录中的所有文件和文件夹
 
files_and_folders = os.listdir()
 
print("当前目录中的文件和文件夹:", files_and_folders)
 

2. 检查文件是否存在

在进行文件写入或读取操作前,检查文件是否存在是一个好习惯。Python提供了os.path.exists()函数来实现这一功能。如果文件或目录存在,该函数返回True,否则返回False

 
python复制代码
 
 
file_path = "my_data/my_file.txt"
 
if os.path.exists(file_path):
 
print("文件存在")
 
else:
 
print("文件不存在")
 

此外,pathlib库也提供了更现代和面向对象的方法,使用Path.exists()方法可以更直观地检查文件路径。

 
python复制代码
 
 
from pathlib import Path
 
 
 
file_path = Path("my_data/my_file.txt")
 
if file_path.exists():
 
print("文件存在")
 
else:
 
print("文件不存在")
 

3. 文件读写操作

Python的内置open()函数可以用于打开文件,并进行读写操作。通过with语句可以确保文件在读写操作完成后被正确关闭。

 
python复制代码
 
 
# 写入文件
 
with open("my_data/my_file.txt", "w") as file:
 
file.write("Hello, World!")
 
 
 
# 读取文件
 
with open("my_data/my_file.txt", "r") as file:
 
content = file.read()
 
print("文件内容:", content)
 

端口检查与Python

在网络编程和系统管理中,端口检查是一个常见的任务。Python提供了多种方法来检查端口的占用情况,包括使用socket模块、psutil库以及netifaces模块。

1. 使用socket模块检查端口

socket模块是Python标准库的一部分,可以用于创建套接字,进而检查端口是否被占用。

 
python复制代码
 
 
import socket
 
 
 
def check_port(port):
 
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
 
try:
 
s.bind(("", port))
 
print(f"Port {port} is available.")
 
except socket.error as e:
 
print(f"Port {port} is in use: {e}")
 
 
 
check_port(8080)
 

2. 使用psutil库查看端口使用情况

psutil是一个跨平台库,用于访问系统和进程信息。它可以列出所有活动的网络连接和端口使用情况。

 
python复制代码
 
 
import psutil
 
 
 
def list_ports():
 
for conn in psutil.net_connections():
 
print(f"{conn.laddr.ip}:{conn.laddr.port} -> {conn.raddr.ip}:{conn.raddr.port}")
 
 
 
list_ports()
 

3. 使用netifaces模块列出网络接口及其配置

netifaces模块可以列出所有网络接口及其配置,包括IP地址和端口使用情况。

 
python复制代码
 
 
import netifaces
 
 
 
def list_interfaces():
 
for interface in netifaces.interfaces():
 
print(f"Interface: {interface}")
 
addrs = netifaces.ifaddresses(interface)
 
for addr in addrs[netifaces.AF_INET]:
 
print(f" IP: {addr['addr']}")
 
for conn in psutil.net_connections(kind='inet'):
 
if conn.laddr.ip == addr['addr']:
 
print(f" Port: {conn.laddr.port}")
 
 
 
list_interfaces()
 

应用实例:网络爬虫与数据存储

以网络爬虫为例,Python的Scrapy框架可以方便地爬取网页数据,并将数据存储到文件中。下面是一个简单的示例,展示了如何使用Scrapy爬取新浪新闻,并将数据保存到TXT文件中。

  1. 创建Scrapy项目:
 
bash复制代码
 
 
scrapy startproject newsSpider
 
  1. 在Spider文件中编写爬虫逻辑,遍历新闻分类并抓取子链接,然后将抓取的内容保存到TXT文件。
 
python复制代码
 
 
# -*- coding: utf-8 -*-
 
import os
 
import scrapy
 
from newsSpider.items import NewsspiderItem
 
 
 
class newsSpider(scrapy.Spider):
 
name = 'news'
 
allowed_domains = ['sina.com.cn']
 
start_urls = ['news.sina.com.cn/guide/']
 
 
 
def parse(self, response):
 
for each in response.xpath("//div[@id='tab01']/div[@data-sudaclick!='citynav']"):
 
parentUrl = each.xpath('./h3/a/@href').extract()[0]
 
parentTitle = each.xpath('./h3/a/text()').extract()[0]
 
parentpath = './data/' + parentTitle
 
if not os.path.exists(parentpath):
 
os.makedirs(parentpath)
 
with open(os.path.join(parentpath, "news.txt"), "a", encoding="utf-8") as file:
 
# 这里可以添加抓取的具体内容,并写入文件
 
file.write(f"Title: {parentTitle}\n")
 

在这个示例中,爬虫遍历新浪新闻的分类页面,并创建相应的文件夹存储每个分类的新闻标题。实际使用时,可以在parse方法中添加更多的解析逻辑,将完整的新闻内容保存到文件中。

结语

Python凭借其强大的库和函数,在文件存储与端口检查等系统管理任务中展现出了出色的能力。通过合理地使用这些工具和方法,可以有效地提高任务执行的效率和准确性。无论是在数据存储、网络编程还是系统管理等领域,Python都是一个值得信赖的选择。

文章来自个人专栏
云电脑知识
266 文章 | 2 订阅
0条评论
0 / 1000
请输入你的评论
0
0